【问题标题】:set global variables not working mysql设置全局变量不起作用mysql
【发布时间】:2014-03-15 15:06:38
【问题描述】:

我最近重新安装了 MySQL 服务器,因为之前的服务器不知何故崩溃了。我想通过使用 SET GLOBAL 来更改一些服务器变量值,例如

    SET GLOBAL query_alloc_block_size = 1024

(1024 是该变量的最小值)并且我正在设置动态系统变量,因此它们应该会改变,但是变量的值不会改变。即使在重新启动服务器后,这些值也保持不变。什么可能导致这个问题?

【问题讨论】:

  • 你想把这个放到mysql的配置文件my.cnf中。
  • 我想从 shell 脚本中动态更改值,所以它不应该是固定值。它曾经在我的旧服务器上工作,我不知道为什么它现在不能工作
  • 请注意标签不是关键字。将标签列表中塞满与您的问题(集合、服务器、变量)相同的单词将无助于对其进行分类。请务必阅读选择标签时出现的说明!

标签: mysql


【解决方案1】:

要在程序中动态设置变量,您只需要:

SET query_alloc_block_size = 1024

(删除全局) 然后它将适用于当前连接。

【讨论】:

    【解决方案2】:

    这是一个很长的评论。

    我不知道为什么以前会这样。 documentation 很清楚:

    如果你改变一个全局系统变量,这个值会被记住并且 用于新连接,直到服务器重新启动。 (为了使全球 系统变量设置永久,你应该在一个选项中设置它 文件。)

    也许在您之前的服务器上,新值恰好与配置文件中的值匹配。

    【讨论】:

    • 对,没错,我以前每次设置后都会重启服务器。但是我不太确定我的服务器使用的是哪个配置文件,我查找了my.cnf文件,发现在不同的地方有很多,所以我不确定要更改哪个。
    • 还有,这是否意味着所有的动态系统变量都应该在选项文件中设置?这些变量有很多。
    猜你喜欢
    • 1970-01-01
    • 2013-07-13
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多