wordpress 迁移导出 sql 必须设 utf8mb4 字符集、勾选 drop table 和 create table、禁用外键检查,并用官方工具处理序列化数据,否则会导致白屏、乱码或导入失败。
直接导出的 sql 文件默认不兼容 wordpress 迁移,必须手动调整导出设置,否则 wp_options 表里的序列化数据会损坏,导致站点白屏或设置丢失。
导出时必须勾选「添加 DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT 语句」
WordPress 迁移常需清空目标库后重新导入,但 phpMyAdmin 默认不生成 DROP TABLE 语句。若目标库已存在同名表,导入会因主键冲突或重复插入失败。
- 勾选此项后,导出的 SQL 开头会包含
DROP TABLE IF EXISTS `wp_options`;等语句 - 不勾选时,即使目标库是空的,某些托管环境(如 SiteGround)的导入器也会拒绝执行无
DROP的批量建表语句 - 注意:该选项不影响数据内容,只控制结构重建逻辑
字符集必须设为 utf8mb4,且「导出方式」选「自定义」而非「快速」
WordPress 5.0+ 强制要求 utf8mb4 字符集支持 emoji 和四字节 UTF-8 字符,用「快速」模式导出会忽略表级字符集声明,导致 wp_comments 或 wp_posts 中的 emoji 显示为问号或乱码。
- 在「自定义」导出页,找到「格式特定选项」→「MySQL」→「字符集」,选
utf8mb4 - 同时勾选「添加 CREATE TABLE 语句」和「添加 INSERT DELAYED 语句」(后者可提升大站导入速度)
- 避免勾选「保存输出到文件」里的「压缩」选项——部分主机的 phpMyAdmin 解压逻辑有 bug,会导致导入中断
必须禁用「启用外键检查」并手动替换表前缀(如果源站不是 wp_)
导出时若未关闭外键约束,导入时可能因表创建顺序问题报错 Cannot add or update a child row: a foreign key constraint fails;而表前缀不统一则会导致 WordPress 找不到 wp_options 等核心表。
- 在「格式特定选项」里,取消勾选「启用外键检查」(即不输出
SET FOREIGN_KEY_CHECKS=0;) - 导出后,用文本编辑器全局替换:把
`wp_替成目标站实际前缀,例如`myblog_;注意保留反引号和下划线 - 不要只替换字符串
wp_—— 否则会误改wp_postmeta里的字段值内容
最易被忽略的是 wp_options 表中 option_value 字段的 PHP 序列化字符串:它们含长度声明(如 s:12:"example.com";),直接替换前缀会导致长度值失效。迁移前务必用 WordPress 官方脚本 searchreplacedb2.php 或 WP-CLI wp search-replace 处理,不能靠文本替换。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











