本文约 2,419 字,预计阅读 7 分钟。文中命令与配置均经过实测,可直接参考执行。
引言
你在本地电脑上把 WordPress 站调好,用 FTP 把全部文件传到服务器,数据库也导了进去,满心欢喜打开域名——结果迎来的是一句冷冰冰的英文报错「Error establishing a database connection」,或者中文「建立数据库连接时出错」。刷新几次都一样,前台后台全打不开,连安装向导都不出现。
这个报错的意思非常明确:WordPress 尝试连接数据库,但连不上。最常见的原因就是忘了改 wp-config.php 里的数据库信息——文件里还写着本地那套 localhost / root / 空密码,而服务器上的数据库名、用户名、密码、主机全都是另一套。好消息是,这是所有迁移故障里最好解决的一类,只要信息填对,几秒钟就恢复。下面把该改什么、怎么找、怎么排错讲清。
故障原因分析
- 数据库连接参数还是本地配置。
DB_NAME、DB_USER、DB_PASSWORD、DB_HOST四项没有改成服务器上的值,是报错的头号原因。
- 服务器上还没创建数据库。 文件传上去了,但主机面板里根本没建库,或者建了库却没导入数据,程序无处可连。
- 数据库主机写错。 本地通常是
localhost,部分云数据库要求写独立的内网地址或指定端口,比如127.0.0.1:3306。
- 数据库用户未授权该库。 建了库也有了用户,但用户没被授予对该数据库的操作权限,连接会被拒绝。
- 表前缀对不上。 连接成功却提示找不到表,虽然报错文字不同,但也常和迁移时的前缀遗漏一起出现。
分步解决方案
第一步:在主机面板创建数据库并记录信息
以宝塔面板为例,进入「数据库 → 添加数据库」,填写数据库名、用户名、密码。添加完成后,面板会显示:
- 数据库名(如
mysite_db) - 用户名(如
mysite_user) - 密码(你设置的密码)
- 主机(通常
localhost)
如果是虚拟主机,服务商一般会提供一份数据库信息对照表。把这几项记下来。
第二步:导入数据库数据
用 phpMyAdmin 或面板的导入功能,把你从本地导出的 .sql 文件导入到刚创建的库里。导入时保持原表前缀,别自作主张改前缀。
第三步:修改 wp-config.php
编辑网站根目录的 wp-config.php,找到数据库配置区,逐项替换成服务器上的信息:
// 文件路径:网站根目录/wp-config.php
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
define('DB_NAME', 'mysite_db'); // 服务器上的数据库名
define('DB_USER', 'mysite_user'); // 数据库用户名
define('DB_PASSWORD', '你的数据库密码'); // 数据库密码
define('DB_HOST', 'localhost'); // 数据库主机
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
保存后刷新网站。正常情况下,页面立刻恢复。
第四步:核对表前缀
顺便检查同一文件下方的表前缀是否与导入的数据一致:
// 文件路径:网站根目录/wp-config.php
$table_prefix = 'wp_'; // 必须与数据库里实际表名前缀一致
第五步:仍报错时逐项验证连接
如果改完还连不上,用下面的小脚本单独测试连接(测完立即删除):
<?php
// 文件路径:网站根目录/db-test.php,用完务必删除
$link = mysqli_connect('localhost', 'mysite_user', '你的密码', 'mysite_db');
if (!$link) {
echo '连接失败:' . mysqli_connect_error();
} else {
echo '连接成功!';
}
看到「连接成功」却仍报错,问题就在表前缀;看到「连接失败」,错误信息会直接告诉你原因(密码错、用户无权限、主机不通等)。
常见踩坑点
- 密码里带特殊字符没转义。 若密码含单引号,需用反斜杠转义,否则 PHP 语法报错导致整站白屏。
- 数据库主机照抄 localhost。 云数据库、独立数据库服务器的地址往往不是 localhost,要向服务商确认。
- 建了库忘了导数据。 只连库不导数据,会跳到安装界面或提示找不到表。
- 用户没授权。 某些面板建库和建用户是分开的,要确认用户已关联到该数据库。
- 文件编码带 BOM。 编辑
wp-config.php时若存成带 BOM 的 UTF-8,会在页面顶部输出空白字符,引发「headers already sent」类问题。 - 测试脚本忘记删。 用来测连接的 PHP 文件暴露了数据库信息,测完必须删除。
总结
本地 WordPress 迁到服务器后出现「建立数据库连接时出错」,基本可以锁定在 wp-config.php 的数据库信息上。正确的顺序是:先在主机面板创建数据库并记下库名、用户名、密码、主机,再导入数据,然后把这四项逐一改成服务器上的值,最后核对 $table_prefix 表前缀是否一致。忘了修改数据库信息导致的连接失败并不可怕,它恰恰是迁移里最容易验证和修复的一环。按上面步骤走一遍,站点很快就能恢复访问;养成迁移后先核对 wp-config.php 的习惯,还能帮你躲开后面一连串连锁故障。最后提醒一点:新装的 WordPress 也可能因为目录里还留着默认的 wp-config-sample.php 而被误认成未安装,迁移时该模板文件可以一并删除,避免浏览器访问时跳到安装向导,把现有数据覆盖掉。
