系统变量tidb_general_log是global还是session?

【 TiDB 使用环境】生产环境 v3.0.12
【 TiDB 版本】 v3.0.12

我看的文档说是tidb_general_log是全局的,但是我用命令set global tidb_general_log=on; 提示错误
ERROR 1105 (HY000): Variable ‘tidb_general_log’ is a SESSION variable and can’t be used with SET GLOBAL

我用 set @@tidb_general_log 或者 set tidb_general_log = 1设置后, 是当前server全局生效的(我新建一个连接,查看变量值已经发生变化, 新建的连接我理解不是一个session了)。
就很疑惑!!!

image

额… 插个题外话

可以考虑升级了!

你这版本太老了 在4.0中是 * 作用域:INSTANCE。在3.0中肯定不是global ,还是升级下版本吧。

报错不是说了它is a SESSION variable么?用 set @@tidb_general_log 或者 set tidb_general_log = 1设置,仅作用于当前连接的 TiDB 实例
文档上也写的是不持久化到集群,仅作用于当前连接的实例
tidb_general_log

  • 作用域:GLOBAL
  • 是否持久化到集群:否,仅作用于当前连接的 TiDB 实例

我设置为1之后,我看了日志,在当前的TiDB实例生效了。 如果是session级别的,当我关闭客户端连接后,应该是失效的,但是现在还是生效的,所以就很疑惑。

你这是Instance级作用域
Instance级修改:
*当前TiDB实例的所有会话生效;
修改不会被持久化,重启失效。

应该是这样了,谢谢。
老版本太难受了. 文档都不好找…

升级把

看文档的时候一定要注意版本
https://docs.pingcap.com/zh/tidb/v3.0/tidb-specific-system-variables#tidb_general_log

升级吧

自己可以测试下,版本太老了

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