WordPress“建立数据库连接时出错”的根本原因是wp-config.php参数与宝塔实际配置不匹配,需依次核对数据库名、用户名、密码、DB_HOST,检查用户权限、MySQL绑定地址、PHP扩展及MySQL 8.0认证兼容性。

检查 wp-config.php 中的数据库连接参数是否匹配宝塔实际配置
WordPress 报“建立数据库连接时出错”,第一反应不是数据库挂了,而是 wp-config.php 里写的参数和宝塔里建的库对不上。常见错位点有三个:数据库名、用户名、密码——尤其是密码,宝塔新建数据库时默认生成一串随机字符,容易复制漏位或粘贴进空格。
实操建议:
- 登录宝塔 → 进入「数据库」→ 找到你给 WordPress 分配的库,点「管理」旁的「修改密码」,确认当前密码(别信记忆,点开看)
- 打开网站根目录下的
wp-config.php,核对这四行:DB_NAME、DB_USER、DB_PASSWORD、DB_HOST;其中DB_HOST在宝塔默认是localhost,但部分新版 MySQL 或启用了 socket 连接时需改成127.0.0.1 - 如果密码含特殊字符(如
@、$、/),PHP 解析可能出问题,建议在宝塔里重置为纯字母+数字组合再试
验证数据库用户是否拥有对应库的全部操作权限
宝塔创建数据库时,默认会给同名用户分配权限,但手动改过用户名、删过用户、或用 root 直接建库没授权,就容易出现「能连上 MySQL,但进不去库」的情况——错误日志里常表现为 Access denied for user 'xxx'@'localhost' to database 'yyy'。
实操建议:
- 在宝塔「数据库」页,找到对应数据库,点「权限」按钮,确认「用户名」列显示的是你
wp-config.php里填的那个,且「权限」列为「所有权限」 - 如果显示「无权限」或为空,点「修改权限」→ 勾选「所有权限」→ 提交
- 更彻底的办法:在宝塔终端执行
mysql -u root -p登录后,运行GRANT ALL PRIVILEGES ON `your_db_name`.* TO 'your_db_user'@'localhost'; FLUSH PRIVILEGES;(注意把your_db_name和your_db_user换成实际值)
确认 MySQL 服务状态与绑定地址是否允许本地连接
有时候宝塔面板显示 MySQL 正常运行,但实际监听地址被改过,导致 localhost 解析失败。尤其在升级过 MySQL 或手动调过配置后,bind-address 可能被设为 127.0.0.1 或某个内网 IP,而 WordPress 用 localhost 尝试走 socket 连接却失败。
实操建议:
- 在宝塔「软件商店」→ 找到 MySQL → 点「设置」→ 「配置修改」,搜索
bind-address,确保它是127.0.0.1或注释掉(即前面加#) - 同时检查
skip-networking是否被启用(如有,删掉这一行),否则 MySQL 只接受 socket 连接,不响应 TCP - 改完重启 MySQL:宝塔界面点「重启」,或终端执行
systemctl restart mysqld - 快速验证:在终端运行
mysql -u your_db_user -p -h 127.0.0.1 your_db_name,能进就说明网络层通了
排查 PHP 连接扩展是否启用及 MySQL 版本兼容性
PHP 8.0+ 默认不再支持 mysql_connect(),而老版本 WordPress(如 5.0 以下)或某些插件若硬编码调用该函数,就会报连接失败——此时错误日志里通常带 Call to undefined function mysql_connect()。另外,MySQL 8.0 默认认证插件改为 caching_sha2_password,而旧版 PHP 的 mysqlnd 扩展可能不兼容。
实操建议:
- 在宝塔「网站」→ 点击你的站点 → 「PHP 版本」确认是否 ≥ 7.4;如用 PHP 8.x,务必升级 WordPress 到 5.6+,避免遗留函数调用
- 进入「PHP 设置」→ 「禁用函数」列表里确认没禁用
mysqli_connect或pdo_mysql - 如 MySQL 是 8.0+,在宝塔数据库页点「管理」→「phpMyAdmin」→ SQL 栏执行:
ALTER USER 'your_db_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';(替换对应值),强制降级认证方式
WordPress 数据库连接问题真正卡住人的地方,往往不是某一个配置错了,而是多个环节叠加失效:比如改了密码但没同步更新权限,又恰好 MySQL 绑定了非默认地址,再碰上 PHP 扩展没开——得一层一层剥,不能只盯着 wp-config.php。











