今天更新一篇搬瓦工建站教程,讲一下 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-E | 1GB | 2核 | 20GB | 1TB | 2.5Gbps | DC6 CN2 GIA-E DC9 CN2 GIA 日本软银 JPOS_1 荷兰 EUNL_9 圣何塞 CN2 GIA 加拿大 CN2 GIA DC3 CN2 DC8 ZNET DC2 AO DC4 MCOM 弗里蒙特 FMT 新泽西 USNJ 纽约 USNY_2 纽约 USNY_6 荷兰 EUNL_3 加拿大 CABC_1 迪拜 AEDXB_1 | $49.99/季度 $169.99/年 | 购买 |
CN2 GIA-E | 2GB | 3核 | 40GB | 2TB | 2.5Gbps | $89.99/季度 $299.99/年 | 购买 | |
CN2 GIA-E | 4GB | 4核 | 80GB | 3TB | 2.5Gbps | $56.99/月 $549.99/年 | 购买 | |
CN2 GIA-E | 8GB | 6核 | 160GB | 5TB | 5Gbps | $86.99/月 $879.99/年 | 购买 | |
CN2 GIA-E | 16GB | 8核 | 320GB | 8TB | 5Gbps | $159.99/月 $1599.99/年 | 购买 | |
CN2 GIA-E | 32GB | 10核 | 640GB | 10TB | 10Gbps | $289.99/月 $2759.99/年 | 购买 | |
CN2 GIA-E | 64GB | 12核 | 1280GB | 12TB | 10Gbps | $549.99/月 $5399.99/年 | 购买 | |
CN2 GIA-E | 64GB | 12核 | 1280GB | 12TB | 10Gbps | $549.99/月 $5399.99/年 | 购买 |
六、优化 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 // 修改为你需要限制的最大连接数
至此,基本上就不应该有太大问题了。
七、经常备份数据库文件
除此之外,建议大家经常备份,备份方法参考如下。
- 备份 MySQL,参考《Ubuntu 系统 MySQL / MariaDB 数据库备份、迁移和恢复(导出和导入)》。
- 备份整站,参考《搬瓦工建站教程:搬瓦工网站数据自动备份、手动备份的几种方法》。
- 自动备份,参考《搬瓦工 KiwiVM 面板上线免费自动备份功能(Automatic backups)》。
- 导入备份,参考《搬瓦工导入恢复备份、下载备份文件、删除历史备份的方法》
八、参考文献以及搬瓦工推荐方案
参考:
- https://www.vultr.com/docs/troubleshooting-wordpress-database-errors
- https://www.wbolt.com/the-error-establishing-a-database-connection.html
- https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-error-establishing-a-database-connection-in-wordpress/
- https://oldtang.com/138.html
搬瓦工新手教程:
- 搬瓦工新手入门:《搬瓦工新手入门完全指南:方案推荐、机房选择、优惠码和购买教程》
- 搬瓦工购买教程:《2020 年最新搬瓦工购买教程和支付宝支付教程》
- 搬瓦工优惠码:BWHCGLUKKB
- 搬瓦工补货通知:《欢迎订阅搬瓦工补货通知(补货提醒)/ 加入搬瓦工交流群》
- 搬瓦工方案推荐:《搬瓦工高性价比 VPS 推荐:目前哪款方案最值得买?》
- 搬瓦工有货方案:《搬瓦工目前可购买便宜方案整理》
- 搬瓦工演示站点:《搬瓦工演示站点汇总(SpeedTest 速度测试 + LookingGlass 路由测试)》
- 搬瓦工测试 IP:《搬瓦工所有数据中心测试 IP》
- 搬瓦工测评汇总:《搬瓦工所有机房数据中心速度、性能、延迟等测评信息汇总》
- 搬瓦工 KiwiVM:《搬瓦工 BandwagonHost KiwiVM 面板后台功能整理和使用教程》
搬瓦工推荐方案:
方案 | 内存 | CPU | 硬盘 | 流量/月 | 带宽 | 推荐机房 | 价格 | 购买 |
---|---|---|---|---|---|---|---|---|
KVM (最便宜) | 1GB | 2核 | 20GB | 1TB | 1Gbps | DC3 CN2 DC8 ZNET (购买后在后台迁移) | $49.99/年 | 购买 |
KVM | 2GB | 3核 | 40GB | 2TB | 1Gbps | $52.99/半年 $99.99/年 | 购买 | |
CN2 GIA-E (最推荐) | 1GB | 2核 | 20GB | 1TB | 2.5Gbps | 美国 DC6 CN2 GIA-E 美国 DC9 CN2 GIA 日本软银 JPOS_1 荷兰 EUNL_9 美国圣何塞 CN2 GIA 加拿大 CN2 GIA | $49.99/季度 $169.99/年 | 购买 |
CN2 GIA-E | 2GB | 3核 | 40GB | 2TB | 2.5Gbps | $89.99/季度 $299.99/年 | 购买 | |
HK (高端首选) | 2GB | 2核 | 40GB | 0.5TB | 1Gbps | 中国香港 CN2 GIA 日本东京 CN2 GIA 日本大阪 CN2 GIA 新加坡 CN2 GIA | $89.99/月 $899.99/年 | 购买 |
HK | 4GB | 4核 | 80GB | 1TB | 1Gbps | $155.99/月 $1559.99/年 | 购买 | |
OSAKA | 2GB | 2核 | 40GB | 0.5TB | 1.5Gbps | 日本大阪 CN2 GIA | $49.99/月 $499.99/年 | 购买 |
OSAKA | 4GB | 4核 | 80GB | 1TB | 1.5Gbps | $86.99/月 $869.99/年 | 购买 | |
搬瓦工优惠码:BWHCGLUKKB | 搬瓦工购买教程:《2024 年最新搬瓦工购买教程和支付宝支付教程》 |
未经允许不得转载:Bandwagonhost中文网 » WordPress 网站 “Error Establishing a Database Connection” 建立数据库连接时出错的解决方法