set global 多个系统参数失败

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】

【概述】 场景 + 问题概述

【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题

【业务影响】

【TiDB 版本】
4.0.11
【应用软件及版本】

【附件】 相关日志及配置信息

  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息

监控(https://metricstool.pingcap.com/)

  • TiDB-Overview Grafana监控
  • TiDB Grafana 监控
  • TiKV Grafana 监控
  • PD Grafana 监控
  • 对应模块日志(包含问题前后 1 小时日志)

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1 Like

回复一个图片给你,请看红框~~

我说的是用一句SQL来同时设置修改多个系统参数变量,跟mysql的语法规则不匹配。
mysql set global 参数=值, 参数=值,…;
tidb set global 参数=值,global 参数=值,global 参数=值 …;
tidb需要在每个参数前面加上global 才能修改global的参数,如果不加global则修改的的session的参数。
而mysql只要一个global 则后面的所有参数修改的都是global作用域的。

那就一个个配置嘛 :ghost:

哦,好吧,还有一个问题,在执行SET GLOBAL语句后,如果不断开重连的话,当前session中的参数什么时候会更改成与global一致?

1、tidb 是自己开发的,不是基于 mysql 开发的,虽然兼容 mysql 协议,有些小的地方还是有些差异的(如果有特殊场景,必须使用这种写法,可以在asktug 中的需求模块提个需求,不过这个需求可能优先级较低,最好可以描述一下背景需求)
2、global 的参数,需要当前会话重新连接后才生效(会话级别的参数会比 global 参数优先级高,所以一般需要重启后才能生效),不过一般 参数,想要当前会话生效,建议也同时调整 会话级别该参数(去掉 global)

3 Likes

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。