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重新启动