MySQL 服务器无故挂起

MySQL 服务器无故挂起

我有一个运行网站的服务器,其后端数据库是 MySQL(更具体地说是 5.5.37-MariaDB,适用于 x86_64 上的 debian-linux-gnu)。

有时它会停止接受连接,网站脚本会报告“无法连接到服务器”。我重新启动 MySQL 服务器后,它可以正常工作一段时间(最多几天)。

syslog、mysql.error 和 dmesg 没有显示相关错误。但是,慢查询日志显示,在某些时刻,查询执行速度越来越慢(从大约 1 秒开始,到 70 秒结束)。我重新启动 MySQL 后,相同的查询会立即执行。

我该如何修复它或者至少确定问题的原因?

答案1

当服务器挂起时strace -fp <pid of mysql>

这将显示哪个命令正在等待。它很可能是一个带有数字的读取

lsof -p <mysql pid>将显示该数字的实际值。

如果日志中没有其他信息,如果不在服务器上就很难判断服务器何时出现故障

答案2

在 my.cnf 中启用慢查询日志记录来查找瓶颈查询的位置,并假设查看 max_used_connections 是否大于 max_connections。

SHOW GLOBAL VARIABLES LIKE 'max_connections';
SHOW GLOBAL STATUS LIKE 'max_used_connections';

相关内容