WP网站数据库迁移教程:零基础也能安全操作

WP网站数据库迁移教程:零基础也能安全操作

什么时候需要迁移数据库?

WordPress网站的核心数据(文章、用户、设置、评论)全部存储在数据库中。
当你更换服务器、更换域名、从本地搬到线上或需要恢复备份时,都需要执行一次数据库迁移。
简而言之,只要网站的数据库文件需要从一处转移到另一处,就离不开本教程涉及的操作。

迁移前必须准备的 3 样东西

在动手之前,请确保已经准备好以下三项:

  1. 数据库访问权限:你需要知道原数据库的主机地址(通常是 localhost)、用户名、密码和数据库名。如果用的是宝塔面板,登录面板后进入“数据库”菜单即可看到。
  2. 网站文件备份:虽然本教程只讲数据库,但建议同时备份 wp-config.php 文件,因为里面包含了数据库连接信息。
  3. 新环境的数据库空库:在目标服务器上先创建一个空数据库(名称随意),并记下新建的数据库用户名和密码。

方法一:使用 phpMyAdmin 可视化迁移(推荐新手)

绝大多数主机商或宝塔面板都预装了 phpMyAdmin。
这是最直观的方式,全程无需接触命令行。

1. 导出原数据库

  • 登录原服务器的 phpMyAdmin(宝塔面板 -> 数据库 -> 管理)。
  • 点击左侧的数据库名称(即你的 WordPress 数据库)。
  • 点击顶部导航栏的“导出”选项卡,选择“快速”导出格式,格式保持 SQL,点击“执行”。
  • 系统会自动下载一个 .sql 文件,这就是你的数据库备份。

2. 导入到新数据库

  • 登录目标服务器的 phpMyAdmin,选择刚创建的空数据库。
  • 点击顶部“导入”选项卡,点击“选择文件”,选中刚才下载的 .sql 备份。
  • 其他选项保持默认,点击“执行”。如果文件较大,可能需要耐心等待几十秒。

3. 修改 wp-config.php 中的数据库连接

找到 WordPress 根目录下的 wp-config.php 文件,将以下三行改为新数据库的信息:

define('DB_NAME', '新数据库名');
define('DB_USER', '新数据库用户名');
define('DB_PASSWORD', '新数据库密码');

如果新数据库的主机地址不是 localhost(例如某些云数据库),还需要修改 DB_HOST 的值。

方法二:使用命令行迁移(适合有大文件或需要批量操作)

当数据库超过 50MB 时,phpMyAdmin 可能会超时,此时用 SSH 命令行更可靠。

1. 导出原数据库

SSH 登录原服务器,执行:

mysqldump -u 原用户名 -p 原数据库名 > wp_backup.sql

按提示输入密码,当前目录就会生成 wp_backup.sql

2. 传输文件到新服务器

可以用 scp 或 FTP 将 wp_backup.sql 上传到目标服务器的任意目录。

3. 导入到新数据库

SSH 登录目标服务器,执行:

mysql -u 新用户名 -p 新数据库名 < wp_backup.sql

输入密码后等待完成,通常几秒内结束。

4. 同样修改 wp-config.php 文件

与第一种方法完全一致,修改数据库连接信息。

迁移后如何验证网站正常?

访问网站首页和后台(/wp-admin),检查以下内容:

  • 首页能否正常打开,文章、页面、图片是否显示完整?
  • 尝试发布一条新文章或修改已有文章,保存后是否成功?
  • 检查插件设置是否丢失?如果有,可能需要重新保存一次。
  • 如果更换了域名,还需进入后台“设置 -> 常规”更新站点地址和 WordPress 地址(WordPress 地址)。

常见报错与解决办法

1. 数据库连接错误(Error establishing a database connection)

原因wp-config.php 中的数据库名、用户名或密码填写错误,或者数据库主机地址不对。
解决:核对 phpMyAdmin 里显示的数据库信息,并确认服务器是否允许远程连接。

2. 导入时提示“禁止访问”或超出上传限制

原因:phpMyAdmin 限制了文件上传大小(常见 2MB~50MB)。
解决:改用命令行导入,或者到宝塔面板的“软件商店” -> phpMyAdmin 的设置中调大 upload_max_filesizepost_max_size

3. 首页正常但后台白屏

原因:数据库中的 siteurlhome 字段还是旧的域名。
解决:登录 phpMyAdmin,打开 wp_options 表,找到 siteurlhome 两条记录,将值改为新域名或新 IP。

4. 菜单、小工具或主题设置丢失

原因:部分主题或插件的序列化数据在迁移时未正确更新。
解决:使用 Better Search Replace 插件或 wp-cli search-replace 命令,将旧域名替换为新域名(仅替换数据库内容,不要手动替换序列化字符串)。

避坑说明(一定要看)

  • 不要直接编辑 SQL 文件:除非你非常清楚序列化数据(serialized data)的结构,否则用文本编辑器修改 SQL 文件中的域名会导致数据损坏。推荐使用专用工具进行搜索替换。
  • 迁移前一定要关闭缓存插件:导出数据库之前,先清空所有缓存插件的缓存,否则可能导出版本过期的数据。
  • 新老环境 PHP 版本尽量一致:不同 PHP 版本可能影响数据库字符集编码,导致乱码。建议在迁移后检查网站字符集是否正常(utf8mb4 是推荐设置)。
  • 先用临时域名测试:不要直接在生产环境上操作,先搭建一个只属于新域名的临时站点来测试迁移结果。

如果你正在处理 WP 网站数据库迁移,建议先按以上步骤完整执行一遍,遇到异常时优先回看本教程的常见报错和避坑部分。
掌握这套方法后,无论是更换服务器还是恢复备份,你都能从容应对。

分享到:
上一篇
宝塔面板PHP扩展安装教程指南
下一篇
Linux内存泄漏排查方法:从症状到根因的服务排查教程
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意