首页 > 解决方案 > 为什么mysql @@variables 与my.cnf 文件的内容不匹配?

问题描述

我可以看到 /etc/mycnf 文件中的变量与我通过“显示变量”命令看到的变量不同,这怎么可能?我怎样才能解决这个问题?

例如以下命令给出的输出: show variables like '%data%'; 给出关于 ndf 文件的不同变量输出.

标签: mysqlmy.cnf

解决方案


一旦确信将它放在正确的 my.cnf 文件或具有最高优先级的文件中,请确保将其放在 my.cnf 配置文件的正确相应部分中。

我的示例案例是我以前在各个部分下都有它[mariadb], [mysqld], [mysql], [client-server],而我的设置log_slow_queries需要在[server]甚至不存在的部分名称下,我只是通过反复试验才弄明白的。

为了确定给定的文件是正确的,请尝试log_slow_queries在该[mysql]字段下添加一个设置,它会抱怨,因为它是服务器设置,而该[mysql]部分用于客户端配置,但如果它会抱怨你知道的错误使用该 .cnf 文件,当通过 CLI 客户端对其进行测试时,通常会抑制服务器错误,并且即使在日志中也经常不可用。

或者您可以通过发出此命令来准确找出 mysql/mariadb 服务器读取了哪些文件

mysqladmin --help | grep -A1 'Default options' 或者

strace mysql ";" 2>&1 | grep cnf 或者

mysqld --help --verbose | grep my.cnf

journalctl -xe用于调查最近与 mysql 服务相关的一些错误的命令


推荐阅读