WordPress 网站 “Error Establishing a Database Connection” 建立数据库连接时出错的解决方法

今天更新一篇搬瓦工建站教程,讲一下 WordPress 比较常见的一个问题,就是 “Error Establishing a Database Connection”,数据库连接错误。早些年的时候搬瓦工中文网经常会遇到这个问题,总结来说基本都是因为 VPS 配置不行导致数据库挂了,所以就连不上数据库。当然,除了这个原因,可能还会存在其他原因,今天就整理一下能想到的几个原因,方便大家解决这个问题。

一、检查数据库是否运行,重启数据库

第一件事我们就是要检查数据库是否正在运行,如果数据库都没运行,那么肯定是会出现错误的。

1、检查数据库是否运行

ps aux | grep mysql

如果返回内容里有数据库的进程,就说明没问题。否则,我们就需要启动一下数据库。以 LNMP 为例,可以使用下面命令启动数据库:

lnmp mysql start

如果启动失败,继续往下看看其他解决方法。

如果不是 LNMP,自行搜索一下怎么启动 MySQL 数据库即可。

2、重启数据库

当然不管数据库有没有运行,我们都可以尝试重启一下数据库来解决问题:

lnmp mysql restart

如果重启之后正常了,就没问题了。如果还是不行,可以继续往下看。

二、检查数据库用户密码是否设置正确

首先检查你添加数据库的时候设置的用户名和密码是否正确。参考《搬瓦工建站教程:使用 LNMP 一键包添加网站以及设置伪静态》这篇文章的添加 MySQL 的部分。

其次检查你 WordPress 网站的 config 文件里设置的用户名和密码是否正确。WordPress 网站的连接详细信息存储在网站根目录的 wp-config.php 文件中。我们首先进入我们网站的根目录,一般是 /home/wwwroot/yourdomain.com,然后就可以看到这个文件。

wp-config.php 包含四个重要信息,这些信息都必须正确才能成功进行连接数据库。

数据库名称:

// ** MySQL settings ** // 
/** The name of the database for WordPress */
define('DB_NAME', 'xxxxxx');

数据库用户名:

/** MySQL database username */
define('DB_USER', 'xxxxxx');

数据库密码:

/** MySQL database password */
define('DB_PASSWORD', 'xxxxxxxxx');

主机名(服务器)(这个一般不用改,就是 localhost,除非你数据库部署到其他主机上面):

/** MySQL hostname */
define('DB_HOST', 'localhost');

比如这是打开的文件示例,找到对应部分即可:

我们需要确保这里设置的内容和我们新建 MySQL 数据库时候设置的内容一致。如果不一致,进行修改。

三、检查 MySQL 数据库连接是否正常

如果觉得一切设置正确,还是连不上,可以检查一下 MySQL 数据库连接是否正常。

在网站根目录新建一个 checkdb.php 文件:

vim checkdb.php

填入以下内容:

<?php
$test = mysqli_connect('localhost', 'db_user', 'db_password');
if (!$test) {
die('MySQL Error: ' . mysqli_error());
}
echo 'Database connection is working properly!';
mysqli_close($testConnection);

浏览器访问 https://yourdomain.com/checkdb.php。如果看到“MySQL Error: Access denied”,则说明您的用户名或密码错误,建议返回第二步再次检查,或者直接重置 MySQL 密码。

重置密码参考《搬瓦工建站教程:LNMP 忘记 MySQL 数据库密码后怎么进行重置密码》。如果不是 LNMP,自行搜索一下 MySQL 怎么重置密码即可。

但如果是“Database connection is working properly.”,则说明数据库用户名和密码正确。完成测试后,请确保删除此文件。

四、尝试修复 WordPress 网站数据库

如果通过上述步骤确认你的数据库用户名、密码全部正确,并且测试也正常,那么可能是数据库损坏了。

WordPress 自带数据库修复模式,只需要打开 wp-config.php 文件,在最下面增加这么一行:

define('WP_ALLOW_REPAIR', true);

然后浏览器访问 WordPress 网站地址:https : //yourdomain.com/wp-admin/maint/repair.php。在页面可以选择“修复数据库”或“修复并优化数据库”。由于目前可能正在对站点进行故障排除,因此建议使用“修复数据库”选项,更高效。

在运行完上述数据库的修复之后,请确保删除添加到 wp-config.php 文件中的代码行,否则任何人都可以运行修复。

当然,如果我们习惯使用命令行,也可以直接在网站根目录输入下面命令进行修复:

wp db repair

五、添加 SWAP 或者升级配置

经过上述一系列操作,基本上都能解决问题了。如果还是存在问题,建议导出数据库文件,然后重装数据库。

下面再介绍一些针对 VPS 的优化设置。比如上面提到的第一点,数据库如果经常不能正常运行,那么很可能是因为没有设置 SWAP,或者是 VPS 配置不够。

1、添加 SWAP

dd if=/dev/zero of=/swapfile bs=1M count=1024   // 此处 1024  swap 的大小,可以自己修改。
mkswap /swapfile
swapon /swapfile

然后添加下面这行到 /etc/fstab

/swapfile swap swap defaults 0 0

完成上述操作后,记得重启一下 MySQL。

2、升级配置

参考《搬瓦工后台自助升级 / 降级套餐教程 & 常见问题解答》。

建议优先考虑购买搬瓦工 DC6 CN2 GIA-E 系列方案,配置更高,更适合建站:

方案内存CPU硬盘流量/月带宽价格机房购买
CN2 GIA-E1GB2核20GB1TB2.5Gbps$49.99/季度
$169.99/年
DC6 CN2 GIA-E 等 11 个机房
(可迁移,流量不变)
购买
CN2 GIA-E2GB3核40GB2TB2.5Gbps$89.99/季度
$299.99/年
DC6 CN2 GIA-E 等 11 个机房
(可迁移,流量不变)
购买
CN2 GIA-E4GB4核80GB3TB2.5Gbps$56.99/月
$549.99/年
DC6 CN2 GIA-E 等 11 个机房
(可迁移,流量不变)
购买
CN2 GIA-E8GB6核160GB5TB5Gbps$86.99/月
$879.99/年
DC6 CN2 GIA-E 等 11 个机房
(可迁移,流量不变)
购买
CN2 GIA-E16GB8核320GB8TB5Gbps$159.99/月
$1599.99/年
DC6 CN2 GIA-E 等 11 个机房
(可迁移,流量不变)
购买
CN2 GIA-E32GB10核640GB10TB10Gbps$289.99/月
$2759.99/年
DC6 CN2 GIA-E 等 11 个机房
(可迁移,流量不变)
购买
CN2 GIA-E64GB12核1280GB12TB10Gbps$549.99/月
$5399.99/年
DC6 CN2 GIA-E 等 11 个机房
(可迁移,流量不变)
购买

六、优化 MySQL 设置参数

除了添加 SWAP,还可以优化 MySQL 参数。

1、修改 InnoDB Buffer Pool Size

找到 MySQL 的配置文件,一般在 /etc/mysql/my.cnf 或者 /etc/my.cnf 这种位置。找到后,编辑配置文件,修改下列行:

innodb_buffer_pool_size = 64M

如果没有 innodb_buffer_poll_size,增加这一行。

2、限制 MySQL 连接数

我们还可以进一步限制 MySQL 的连接数。还是修改 MySQL 配置文件,添加或者修改下面这一行:

max_connections = 100  // 修改为你需要限制的最大连接数

至此,基本上就不应该有太大问题了。

七、经常备份数据库文件

除此之外,建议大家经常备份,备份方法参考如下。

  1. 备份 MySQL,参考《Ubuntu 系统 MySQL / MariaDB 数据库备份、迁移和恢复(导出和导入)》。
  2. 备份整站,参考《搬瓦工建站教程:搬瓦工网站数据自动备份、手动备份的几种方法》。
  3. 自动备份,参考《搬瓦工 KiwiVM 面板上线免费自动备份功能(Automatic backups)》。
  4. 导入备份,参考《搬瓦工导入恢复备份、下载备份文件、删除历史备份的方法

八、参考文献以及搬瓦工推荐方案

参考:

搬瓦工新手教程:

  1. 搬瓦工新手入门:《搬瓦工新手入门完全指南:方案推荐、机房选择、优惠码和购买教程
  2. 搬瓦工购买教程:《2020 年最新搬瓦工购买教程和支付宝支付教程
  3. 搬瓦工优惠码:BWH3HYATVBJW
  4. 搬瓦工补货通知:《欢迎订阅搬瓦工补货通知(补货提醒)/ 加入搬瓦工交流群
  5. 搬瓦工方案推荐:《搬瓦工高性价比 VPS 推荐:目前哪款方案最值得买?
  6. 搬瓦工有货方案:《搬瓦工目前可购买便宜方案整理
  7. 搬瓦工演示站点:《搬瓦工演示站点汇总(SpeedTest 速度测试 + LookingGlass 路由测试)
  8. 搬瓦工测试 IP:《搬瓦工所有数据中心测试 IP
  9. 搬瓦工测评汇总:《搬瓦工所有机房数据中心速度、性能、延迟等测评信息汇总
  10. 搬瓦工 KiwiVM:《搬瓦工 BandwagonHost KiwiVM 面板后台功能整理和使用教程

搬瓦工推荐方案:

方案内存CPU硬盘流量/月带宽价格机房购买
CN2
(最便宜)
1GB1核20GB1TB1Gbps$49.99/年DC3 CN2
DC8 ZNET
购买
CN22GB1核40GB2TB1Gbps$52.99/半年
$99.99/年
DC3 CN2
DC8 ZNET
购买
CN2 GIA-E
(最推荐)
1GB2核20GB1TB2.5Gbps$49.99/季度
$169.99/年
DC6 CN2 GIA-E
DC9 CN2 GIA
购买
CN2 GIA-E2GB3核40GB2TB2.5Gbps$89.99/季度
$299.99/年
DC6 CN2 GIA-E
DC9 CN2 GIA
购买
CN2 GIA1GB2核20GB1TB1Gbps$31.99/季度
$113.99/年
DC9 CN2 GIA购买
CN2 GIA2GB3核40GB2TB1Gbps$61.99/季度
$225.99/年
DC9 CN2 GIA购买
HK2GB2核40GB0.5TB1Gbps$89.99/月
$899.99/年
香港 CN2 GIA
香港 PCCW
购买
HK4GB4核80GB1TB1Gbps$155.99/月
$1559.99/年
香港 CN2 GIA
香港 PCCW
购买

未经允许不得转载:Bandwagonhost中文网 » WordPress 网站 “Error Establishing a Database Connection” 建立数据库连接时出错的解决方法