博客 / Linux/ lnmp服务器WordPress网站出现“建立数据库连接时出错”mysql自动关闭了

lnmp服务器WordPress网站出现“建立数据库连接时出错”mysql自动关闭了

lnmp服务器WordPress网站出现“建立数据库连接时出错”mysql自动关闭了

问题现象

WordPress 网站出现“建立数据库连接时出错”的提示,通常是由于 MySQL 数据库服务意外停止导致的。

解决方案

可以通过编写一个监控脚本,定期检查 MySQL 服务状态,并在发现服务停止时自动重启它。以下是具体步骤:

1. 创建监控脚本

使用文本编辑器(如 vi)创建一个脚本文件:

vi /root/tools/mysql_check.sh

将以下脚本内容复制到文件中:

#!/bin/bash

# 检查 mysqld 进程是否存在
pgrep -x mysqld &> /dev/null

if [ $? -ne 0 ]
then
    # 记录日志并启动 MySQL 服务
    echo "At time: `date` : MySQL is stopped, restarting." >> /home/wwwlogs/mysql_messages
    service mysql start
else
    # 可选:记录运行状态(生产环境建议注释掉以减少日志量)
    # echo "MySQL server is running."
    :
fi

保存并退出编辑器后,为脚本添加可执行权限:

chmod +x /root/tools/mysql_check.sh

2. 配置定时任务

使用 crontab -e 命令编辑当前用户的定时任务:

crontab -e

在打开的编辑器中添加以下一行,表示每 5 分钟执行一次监控脚本:

*/5 * * * * /bin/bash /root/tools/mysql_check.sh

保存并退出。定时任务将自动生效。

补充说明与建议

  • 脚本路径:请确保 /root/tools/mysql_check.sh 路径正确,且脚本具有可执行权限。
  • 服务启动命令:示例中使用的是 service mysql start。根据你的系统和服务管理方式,也可能是 systemctl start mysqld/etc/init.d/mysql start,请根据实际情况调整。
  • 日志文件:脚本会将 MySQL 停止和重启的时间记录到 /home/wwwlogs/mysql_messages 文件中,便于后续排查。请确保该目录存在且有写入权限。
  • 根本原因:此方法是一个“治标”的应急方案。MySQL 频繁自动关闭通常意味着存在更深层的问题,例如:内存不足、配置不当、遭受攻击或存在有问题的查询。建议在实施监控后,仍需检查 MySQL 错误日志(通常位于 /var/log/mysql/error.log/var/log/mysqld.log)以定位并解决根本原因。
  • 安全考虑:脚本存放在 /root/ 目录下,请妥善保管。如果服务器有多个用户,建议评估权限设置。
  1. 查看下日志文件看看具体什么原因导致卡死的,以前遇到过mysql日志文件把空间占满的情况。

    1. 就是没时间去搞,这段时间工作上都忙不过来了,没时间折腾网站

  2. 是不是内存不足?

    1. 具体原因我还在查,要去看日志,最近工作比较忙,就没有去从根本解决,暂时用了个脚本每隔五分钟监控mysql是否在运行,没有就启动。。。防止进程死掉后停止服务

发表评论

您的邮箱不会公开。必填项已用 * 标注。