如何确定 MySQL 在 Ubuntu 上突然停止的原因

如何确定 MySQL 在 Ubuntu 上突然停止的原因

如何确定 MySQL 停止运行的原因?

我最近将 Ubuntu 服务器升级到 16.04,现在 MySQL 会在几个小时后突然停止运行。它充当 Wordpress 安装的后端。我的 MySQL 版本现在是:

mysql  Ver 14.14 Distrib 5.5.54, for debian-linux-gnu (x86_64) using readline 6.3

检查who -b显示服务器几天内没有重新启动,所以这不是 MySQL 无法正常启动的问题。

日志/var/log/mysql/error.log是空的,所有已存档的文件也是空的。

日志/var/log/syslog.log没有显示任何异常或引用mysql。

unattended-upgrades安装了软件包以自动安装安全更新,并且日志/var/log/unattended-upgrades/unattended-upgrades.log显示:

2017-03-22 07:00:32,459 INFO Packages that will be upgraded: libc-bin libc-dev-bin libc6 libc6-dev locales multiarch-support
2017-03-22 07:00:32,459 INFO Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log'
2017-03-22 07:00:38,595 INFO All upgrades installed
2017-03-22 07:00:39,846 ERROR No '/usr/bin/mail' or '/usr/sbin/sendmail',can not send mail. You probably want to install the 'mailx' package.
2017-03-22 07:00:39,846 WARNING Found /var/run/reboot-required, rebooting

表明它确实安装了一些更新,并已安排重新启动,但尚未重新启动。

我如何才能确切地找出导致 MySQL 停止或崩溃的原因?

答案1

它可以因 OOM(内存不足终止程序)而停止。简而言之:当内存(包括交换空间)几乎完全填满时,Linux 内核可以终止一些占用大量内存的进程,以缓解内存压力。

dmesg | grep -i oom匯報導嗎?

答案2

尝试查找可能导致 mysqld 死亡的因素。查看这篇博文,了解要使用哪些工具。Auditctl 在我参与的一个案例中发挥了作用。https://www.percona.com/blog/2015/03/06/stopped-mysql-tracing-back-signals-sent-mysql/

答案3

首先,由于您的 mysql 错误日志是空的,我将启用日志记录: https://dev.mysql.com/doc/refman/8.0/en/error-log.html

添加此内容:

/etc/my.cnf  # most common location

log-error=/var/log/mysqld.log

另外,我不允许外部连接到端口 3306。如果您需要远程访问 MySQL,请改用 SSH 隧道。

相关内容