技术帝的平台展示,网站建设、网站推广、SEO技术、网站优化、电子商务推广、平面美工和软件测试等技术干货分享。

WordPress网站报错Error establishing a database connection(Linux服务器MySQL 服务自动停止的解决方法)

数据库 abel-lan 67℃ 0评论

概述

网站数据库无突然法链接,WordPress网站报错Error establishing a database connection,其他网站报错MySQL Server Error: Can not connect to MySQL server! 等类似信息,经排查发现是由于MySQL服务自动停止导致数据无法链接。这种一般是由于服务器内存不足导致MySQL服务被Kill掉。可以采取三种方式解决:添加物理内存或增加Swap文件(即虚拟内存);将Apache2换成Nginx或其他轻量级Web服务器;修改Apache2配置文件。本文主要介绍添加Swap文件方式。

问题描述

WordPress网站报错Error establishing a database connection
WordPress网站报错Error establishing a database connection

WordPress网站突然报错Error establishing a database connection,该服务器上的其他网站也出现无法链接数据的问题。该服务器装的是 lampp运行了 2 年没问题,最近经常出现 mysql 服务器自动停止的现象,手动重启后恢复正常。查看MySQL日志(路径/opt/lampp/var/mysql/***.err)有以下错误:

2023-06-14 01:26:53 233704 mysqld_safe mysqld from pid file /opt/lampp/var/mysql/iZrj974bqirdpo7lyi8a9eZ.pid ended

并且查看lampp运行状况,也发现MySQL服务停止了,如下:

# /opt/lampp/lampp status
Version: XAMPP for Linux 7.4.16-0
Apache is running.
MySQL is not running.
ProFTPD is running.

问题原因及分析过程

服务器上安装的 MySQL,一直正常使用,突然出现自动停止的情况。这通常是由于服务器的内存不足导致。具体可通过服务器日志(路径 /var/log/messages)来分析排查,可以使用命令 grep "mysqld" /var/log/messages 直接检索有关mysqld的日志信息。

# grep "mysqld" /var/log/messages
Jun 14 01:26:50 iZrj974bqirdpo7lyi8a9eZ kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-0.slice/session-3479.scope,task=mysqld,pid=233869,uid=989
Jun 14 01:26:50 iZrj974bqirdpo7lyi8a9eZ kernel: Out of memory: Killed process 233869 (mysqld) total-vm:1546516kB, anon-rss:180260kB, file-rss:0kB, shmem-rss:0kB, UID:989 pgtables:764kB oom_score_adj:0
Jun 14 01:26:50 iZrj974bqirdpo7lyi8a9eZ kernel: oom_reaper: reaped process 233869 (mysqld), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

发现日志有提示 Out of memory ,就可以确定是服务器的内存使用不足,导致系统自动杀死了 MySQL 的进程。进一步查看阿里云ECS服务器运行监控,发现在报错Out of memory时,内存占用率突然升到100%,再次确认是服务器内存不足导致。

mysqld killed时内存使用情况
mysqld killed时内存使用情况

解决办法

解决方法有以下三种:

  1. 添加服务器物理内存或增加添加Swap交换文件(即虚拟内存)。
  2. 将Apache2换成Nginx或其他轻量级Web服务器。
  3. 修改Apache2的配置文件(详情见文章末尾扩展部分)。

转载请注明:半亩方塘 » WordPress网站报错Error establishing a database connection(Linux服务器MySQL 服务自动停止的解决方法)

赞 (2)支付宝扫码打赏微信扫码打赏分享
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址