当我运行“show processlist;”时,我得到了很多睡眠进程。
我在 my.cnf 中将 wait_timeout 和 interactive_timeout 设置为 60。但是,进程列表上的时间达到 60 时,睡眠进程并未死亡。我发现时间达到 7900 时,睡眠进程死亡。发生了什么?如何减少睡眠进程的超时时间?
如果您需要其他信息,我会尽可能提供。
更新
我在mysql上使用root,read_only和deploy账户。我发现root和read_only账户运行正常。查询->休眠-(60秒)->释放进程。
但是用于连接 rails 服务器和 mysql 的部署账户运行错误。查询 -> 休眠 -(7900 秒)-> 释放。所以,我认为部署账户或 Rails 有问题。但是,我不知道该如何修复它。
答案1
如果您将这些值添加到 /etc/my.cnf,则需要重新启动 MySQL 才能使它们生效。
您可以使用以下命令交互地更改它们
SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;
请注意,现有连接将不会获取新值,它们将根据创建时的设置一次性超时。