批量替换WordPress站点MySQL数据库中的多组URL
批量替换WordPress数据库中URL的方案
1. 先备份数据库
这是不可省略的关键步骤,防止操作失误导致数据丢失:
- 通过phpMyAdmin导出整个数据库
- 或使用命令行工具
mysqldump:
mysqldump -u [数据库用户名] -p [数据库名] > backup.sql
2. 利用Excel生成批量SQL语句
针对400组URL对应关系,用Excel自动生成替换语句:
- 打开你的URL表格,新增一列(如C列)
- 在C1单元格输入以下公式(注意把
wp_替换成你的WordPress数据库表前缀):
=CONCATENATE( "UPDATE wp_posts SET post_content = REPLACE(post_content, '", A1, "', '", B1, "'), post_excerpt = REPLACE(post_excerpt, '", A1, "', '", B1, "'), guid = REPLACE(guid, '", A1, "', '", B1, "');", CHAR(10), "UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, '", A1, "', '", B1, "');", CHAR(10), "UPDATE wp_options SET option_value = REPLACE(option_value, '", A1, "', '", B1, "');", CHAR(10), "UPDATE wp_termmeta SET meta_value = REPLACE(meta_value, '", A1, "', '", B1, "');", CHAR(10), "UPDATE wp_commentmeta SET meta_value = REPLACE(meta_value, '", A1, "', '", B1, "');", CHAR(10) )
- 下拉填充C列到所有行,每一行都会生成对应URL对的完整SQL语句
- 若URL中包含单引号
',需先在Excel中替换为两个单引号''(SQL转义规则),避免语法错误
3. 执行SQL语句
将C列生成的所有SQL语句复制后:
- 打开phpMyAdmin,选中你的WordPress数据库,进入「SQL」标签页粘贴语句并执行
- 或用MySQL命令行运行:
mysql -u [数据库用户名] -p [数据库名] < 你的SQL文件.sql
注意事项
- 确认数据库表前缀是否为
wp_,如果是自定义前缀(如wp_blog_),需替换公式中所有wp_ - 若使用了自定义插件,部分插件会在专属表中存储URL,需额外添加对应表的UPDATE语句
- 执行完成后清空WordPress缓存(含页面缓存、CDN缓存),确保新URL生效
内容的提问来源于stack exchange,提问作者JonesySmith
相关产品推荐
相关产品推荐

