Rails + MySQL:如何减少睡眠过程的超时时间?

Rails + MySQL:如何减少睡眠过程的超时时间?

当我运行“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;

请注意,现有连接将不会获取新值,它们将根据创建时的设置一次性超时。

相关内容