MySQL“wait_timeout”选项不会保存

Mat*_*ttB 5 mysql

MySQL 当前在我们的服务器上设置为 28800 的 wait_timeout,我认为这是默认值。我一直在尝试按照顾问的建议将其更改为 60,但这些更改似乎不会持续很长时间。这是我在以 root 用户身份登录 Linux 并以数据库用户身份登录 MySQL 时所尝试的:

1) 登录 MySQL 并:

show variables like '%wait_timeout%';
set wait_timeout=60;
Run Code Online (Sandbox Code Playgroud)

2) 编辑 /etc 下的 my.cnf 文件,在 [mysqld] 和 [mysqld_safe] 中添加以下行:

wait_timeout=60
Run Code Online (Sandbox Code Playgroud)

当我尝试 #1 并选择在之后立即显示 wait_timeout 变量时,它正确显示为 60。但是,如果我等待一两分钟,它会再次恢复为 28800。当我尝试 #2 时,即使重新启动 Apache 和 MySQL 后,该选项似乎也根本不适用。

my.cnf 似乎是我能找到的唯一这样的文件版本。

我尝试了以下操作,但没有显示任何参数:

mysql --print-defaults
Run Code Online (Sandbox Code Playgroud)

重新启动 Apache 时,我一直在使用:

/usr/sbin/apachectl graceful
Run Code Online (Sandbox Code Playgroud)

重新启动 MySQL 时,我一直在使用:

/etc/init.d/mysqld restart
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?:-(

Jan*_*nen 9

恐怕您可能遇到了 MySQL 的几个陷阱之一。看到这个错误报告

如果我理解一切正确,MySQL 命令行客户端会导致使用 mysqldinteractive_timeout而不是wait_timeout.

以下查询会返回什么?

SELECT @@global.wait_timeout, @@session.wait_timeout;