Ubuntu系统下MySQL莫名关闭,如何排查原因?
MySQL意外关闭的排查方法(Ubuntu环境)
根据你提供的错误日志,MySQL收到了用户信号或boot用户触发的关闭指令,可通过以下途径排查原因:
分析系统与服务日志
- 查看MySQL服务的系统日志,定位关闭触发细节:
journalctl -u mysql.service --since "2023-01-31 06:00" - 搜索系统全局日志中的关机/进程终止记录:
grep -i "shutdown\|mysqld" /var/log/syslog - 若启用了auditd服务,可查询信号发送记录:
ausearch -m signal -ts 2023-01-31 06:00,确认哪个进程向mysqld发送了终止信号(如SIGTERM、SIGKILL)
- 查看MySQL服务的系统日志,定位关闭触发细节:
检查服务管理机制
- 查看MySQL服务的状态变更历史:
systemctl status mysql.service,确认是否由systemd自动重启或触发了服务恢复策略 - 排查是否存在监控工具(如monit、supervisor)自动重启MySQL的配置,检查对应工具的日志文件
- 查看MySQL服务的状态变更历史:
排查用户/脚本操作
- 检查定时任务,确认是否有自动关闭/重启MySQL的脚本:
- 当前用户定时任务:
crontab -l - 系统级定时任务:查看
/etc/crontab、/etc/cron.d/目录下的文件
- 当前用户定时任务:
- 查看用户操作审计日志:
grep -i "mysql\|systemctl stop" /var/log/auth.log,确认是否有用户执行了systemctl stop mysql、mysqladmin shutdown等关闭命令
- 检查定时任务,确认是否有自动关闭/重启MySQL的脚本:
验证系统资源与环境
- 检查是否触发了OOM Killer(内存耗尽强制杀进程):
dmesg | grep -i oom - 查看MySQL数据目录所在磁盘的空间使用:
df -h /var/lib/mysql,排除磁盘满导致的异常 - 关注日志中的警告:
--pid-file配置在/tmp目录(全局可写),可能存在误删pid文件或恶意操作,建议将pid文件迁移到/var/run/mysqld/这类安全目录
- 检查是否触发了OOM Killer(内存耗尽强制杀进程):
核对MySQL版本与更新记录
- 日志显示MySQL从
8.0.32-0buntu0.20.04.1升级到了8.0.32-0buntu0.20.04.2,检查系统更新记录:apt history,确认是否是系统自动更新触发了服务重启
- 日志显示MySQL从
内容的提问来源于stack exchange,提问作者dbf
相关产品推荐
相关产品推荐

