在 Ubuntu VPS 上运行 WordPress 网站时,如果遇到“建立数据库连接错误”(Error Establishing a Database Connection),通常是因为 WordPress 无法连接到 MySQL/MariaDB 数据库。这个问题可能由多种原因引起,以下是一些常见的解决方法。
1. 检查数据库配置
WordPress 通过 wp-config.php
文件中的配置连接到数据库。确保配置文件中的数据库信息正确。
步骤:
打开
wp-config.php
文件:sudo nano /var/www/your-website/wp-config.php
检查以下配置项:
define('DB_NAME', 'your_database_name'); // 数据库名define('DB_USER', 'your_database_user'); // 数据库用户名define('DB_PASSWORD', 'your_database_password'); // 数据库密码define('DB_HOST', 'localhost'); // 数据库主机(通常是 localhost)
如果配置有误,修改后保存并退出(按
Ctrl + X
,然后按Y
确认)。
2. 检查数据库服务是否运行
确保 MySQL/MariaDB 服务正在运行。
步骤:
检查数据库服务状态:
sudo systemctl status mysql
或(如果是 MariaDB):
sudo systemctl status mariadb
如果服务未运行,启动服务:
sudo systemctl start mysql
或:
sudo systemctl start mariadb
设置服务开机自启:
sudo systemctl enable mysql
或:
sudo systemctl enable mariadb
3. 检查数据库用户权限
确保 WordPress 使用的数据库用户具有访问数据库的权限。
步骤:
登录 MySQL/MariaDB:
sudo mysql -u root -p
检查用户权限:
SHOW GRANTS FOR 'your_database_user'@'localhost';
如果用户没有权限,授予权限:
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_database_user'@'localhost';FLUSH PRIVILEGES;
退出 MySQL:
EXIT;
4. 检查数据库是否存在
确保 WordPress 使用的数据库已经创建。
步骤:
登录 MySQL/MariaDB:
sudo mysql -u root -p
列出所有数据库:
SHOW DATABASES;
如果数据库不存在,创建数据库:
CREATE DATABASE your_database_name;
退出 MySQL:
EXIT;
5. 检查数据库连接限制
如果数据库连接数达到上限,可能会导致连接失败。
步骤:
登录 MySQL/MariaDB:
sudo mysql -u root -p
查看当前连接数:
SHOW STATUS LIKE 'max_used_connections';SHOW VARIABLES LIKE 'max_connections';
如果连接数接近上限,可以临时增加连接数:
SET GLOBAL max_connections = 200;
永久修改连接数:
编辑 MySQL 配置文件:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到
max_connections
并修改:max_connections = 200
重启 MySQL 服务:
sudo systemctl restart mysql
6. 检查防火墙设置
确保防火墙允许 MySQL/MariaDB 的端口(默认是 3306)通过。
步骤:
检查防火墙状态:
sudo ufw status
如果防火墙阻止了 MySQL 端口,允许端口:
sudo ufw allow 3306
7. 检查数据库主机地址
如果数据库不在本地,确保 DB_HOST
配置正确。
步骤:
打开
wp-config.php
文件:sudo nano /var/www/your-website/wp-config.php
检查
DB_HOST
配置:define('DB_HOST', 'your_database_host'); // 例如:localhost 或远程数据库 IP
如果数据库在远程服务器上,确保远程服务器允许连接。
8. 检查数据库表是否损坏
如果数据库表损坏,可能会导致连接失败。