MySQL“wait_timeout”选项不会保存

MySQL目前在我们的服务器上设置为28800的wait_timeout,我知道这是默认值。 根据顾问的build议,我一直试图将其改为60,但这些改变似乎并没有太久。 以root用户身份login到Linux,以数据库用户身份loginMySQL时,以下是我尝试的:

1)login到MySQL和:

show variables like '%wait_timeout%'; set wait_timeout=60; 

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

 wait_timeout=60 

当我尝试#1并select显示wait_timeoutvariables后,它正确显示为60.但是,如果我等了一两分钟,它又恢复到28800。 当我尝试#2时,即使在重新启动Apache和MySQL之后,该选项似乎也完全不起作用。

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

我已经尝试了以下,但没有参数显示:

 mysql --print-defaults 

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

 /usr/sbin/apachectl graceful 

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

 /etc/init.d/mysqld restart 

有任何想法吗? 🙁

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

如果我理解了一切,MySQL命令行客户端将导致mysqld使用interactive_timeout而不是wait_timeout

以下查询返回给你什么?

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

Apache不参与这个过程,所以你可以跳过处理它的任何事情。

至于MySQL,你有没有试过看是否有其他的my.cnf文件可能覆盖基本的? 此外,而不是重新启动实际上closuresMySql服务器,然后启动它。 这可能是你有一个或两个线程保持打开,导致价值恢复。

1.编辑my.cnf(MySQLconfiguration文件)。

Ubuntu 16.04

  sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

Debian的

  sudo vi /etc/mysql/my.cnf

Centos下

  sudo vi /etc/my.cnf

2.find超时configuration并进行调整以适合您的服务器。

的[mysqld]
 wait_timeout = 31536000
 interactive_timeout = 31536000

3.保存更改并退出编辑器。

4.重新启动MySQL以应用更改如下:

 sudo /etc/init.d/mysql重新启动