为什么会出现数据库连接错误
相信很多朋友都遇到过 WordPress 提示“建立数据库连接时出错”(英文:“Error establishing a database connection”)这个错误,一般遇到这个错误,基本就 3 种情况:其一,WordPress 根目录下的 wp-config.php
文件里的数据库连接信息有误;其二,wp_options 这张数据库表损坏了需要修复;第三种情况,是 Mysql 数据库停止了。
第一种情况很少出现,大家遇到的基本都是第三种了,Mysql 数据库停了。下面龙笑天就来说说这第三种情况出现的原因及怎么解决?
Mysql 数据库停止的原因
通常来说,正常运行的 MySQL 突然意外停止的原因,大多数是这 4 个:服务器空间满了,服务器被攻击了,数据库读写多了,服务器性能差了...
对于第 3 个原因的话,就建议大家一定要百度安装启用好 wordpress 的 Memcached 或 Redis 数据库缓存功能,设置方法可参考下文:
Mysql 数据库停止的解决方法
大多数情况下,我们都不可能知道 MySQL 数据库是否停止了,那么如何确保 MySQL 数据库停止后,及时启动 MySQL 呢?下面就来介绍解决方法。
1.宝塔面板
使用宝塔面板的话,就很简单了,前往“计划任务”菜单,“任务类型”选“shell 脚本”,“执行周期”选“N 分钟”,然后填 15 分钟,“脚本内容”内容填下面的代码(谢谢群友 @川建国 提供的脚本):
#!/bin/bash
# author: 龙笑天
# website: https://www.ilxtx.com/linux-shell-auto-restart-mysql.html
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
bash /www/server/panel/script/rememory.sh
/etc/init.d/mysqld start
fi
这样就可以每隔 15 分钟自动检测 MySQL 是否停止,停止的话就会自动启动了。PS:时间间隔 15 自行修改。
2.其他通用
如果你使用的其他面板或程序的话,则可以试试使用下面的通用方法来解决。
2.1 制作脚本
将下面代码保存文件名为dr_check_mysql.sh
,然后上传至服务器的root
目录下,然后执行命令chmod +x /root/dr_check_mysql.sh
赋予该脚本文件执行权限:
#!/bin/bash
# author: 龙笑天
# website: https://www.ilxtx.com/linux-shell-auto-restart-mysql.html
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/mysql start
fi
2.2 添加定时任务
用 crontab -e 命令添加一个定时任务,其中的检查时间间隔 15 分钟自行修改:
#auto restart mysql
*/15 * * * * /bin/bash /root/dr_check_mysql.sh
检测 PHP/NGINX/MYSQL 并重启
如果你想检测 php,nginx,mysqld,redis 是否运行并自动重启。可以参考下文:
Linux Shell 脚本实时检测 Nginx 状态 挂掉则立即自动重启
相关参考
解决 WordPress 建立数据库连接时出错 - WordPress 大学
Linux Shell 脚本实现检测 Mysql 状态,挂掉立即自动重启 - LJY IT BLOG
Linux VPS/服务器上用 Crontab 来定时执行实现 VPS 自动化 - VPSER
还没有人赞赏,快来当第一个赞赏的人吧!
声明:本文为原创文章,版权归龙笑天下所有,欢迎分享本文,转载请保留出处!