今儿再一次让我知道了自己是多么的“生猛”,较早前WordPress版本升级是直接用FTP覆盖的,对于数据也没定时备份的习惯,对于几天前的更换域名,也是如此,网站数据上传,数据库导入,好了!
今儿才知道换域名后是要对数据库进行操作修改的,我不知道,直到今天群里童鞋在说,我才仔细的查看了下数据库表。不看不知道,一看吓一跳!经过搜索学习,终于是搞定了。这里就小结一下,当做记录吧!
首先,修改表“wp_options”中的字段“option_value”的第1行和第39行,换成新域名网址。第1行是站点url,不改进不了后台;第39行是主页地址,也可在后台设置常规里修改。
然后之前,进数据库搜索原网址,发现不是一般的多,纯手动那是不可能的了,所以我们需要用SQL的update命令批量替换原网址,语句格式如下:
UPDATE 某数据表名 SET 此表某字段 = REPLACE(此表某字段, '原内容','新内容')
提示:请注意半角符号!
然后,修改表“ wp_posts” 中的字段 “guid”,因此字段记录了文章最原始 url ,而且无论你将数据导入到什么地方,此信息是不变的。进入数据库——SQL,输入以下语句():
UPDATE wp_posts SET guid = REPLACE(guid, 'http://fivemu.cn','http://immmmm.com')
意思是:修改表“ wp_posts” 中的字段 “guid”的原网址http://fivemu.cn为http://immmmm.com 。
另外,若发表文章上传的图片和附件都是直接上传网站的话,输入以下语句:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://fivemu.cn','http://immmmm.com')
最后,也就没最后了,继续安心写博吧~

呵呵,记下了
或许下次换域名时就用到了
我是先導出, 用編輯器批次文字替代後再導入. 好處是資料庫所有表都替代了(不只 wp_option).
@willin 本来应该是这样的,不过我已经导入了,所以就直接数据库命令批处理啦~
收藏备用,我搬家不用修改,可能是因为我的图片都是用子域名表示吧
@zwwooooo 换域名都要改的,文章的里的guid字段记录了你发布文章时最原始的URL,而且不会更新!
Pretty good post. I just came across your blog and wanted to say
that I have really liked browsing your posts. Any way
I’ll be subscribing to your feed and I hope you write again soon!
@Maria Thanks you! Good luck!
你不说我还没注意,原来你更换了玉米,恭喜
用editplus直接替换不行吗?比如原域名是aaa,更改为bbb,在editplus中用aaa全部替换成bbb,不是更方便吗?
@短歌行 行当然是行的,可能就是针对性不强吧,你不知道到底替换了哪些里的原域名,是文章里的,留言里的,还是其他?数据库后台操作就是清楚到底替换了哪个表里的哪个字段里的域名!
记下,学习下!
回复次数也有限制?
@短歌行 米限制呀!不许你回复啦?
界面很干净~~~不错
@明知道 你也是使用同一个主题吧~不过我这显示有错位哦,IE7下和chrome下!
我的在ie6下正常。可能是版本的问题?你的是自己改的么?
@明知道 是地,自己瞎折腾地~
嫉妒一下,有时间教教我吧!
嵌套回复只能2层?
@短歌行 恩,没定义3层的,嵌套起来很难看的……
顶一下,这个非常有用!
@zhukun 这样会省力很多,针对性也比较强!
UPDATE 某数据表名 SET 此表某字段 = REPLACE(此表某字段, ‘原内容’,'新内容’)
这里为什么要加个replace?
@路个的 替代的意思吧~
哦,我学习SQL比较浅,没用过这个语法,呵呵。
原创 SQL中replace的使用收藏
Replace:用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法
Replace ( ‘string_expression1′ , ‘string_expression2′ , ‘string_expression3′ )
参数:
’string_expression1′
待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。
’string_expression2′
待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。
’string_expression3′
替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。
返回类型
如果 string_expression(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_expression(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。
找到用法了,呵呵。
不过我觉得是不是用这样也可以:
UPDATE 某数据表名
SET 此表某字段 = ‘新内容’
WHERE 此表某字段=’原内容’
UPDATE 某数据表名
SET 此表某字段 = ‘新内容’
WHERE 此表某字段=’原内容’
@路个的 研究的够透彻的!我一般知道一个能用就好了,比较偷懒~~
我刚换域名,都是手工改的,早看见这个就好了,顶下
等会我仔细看看
不是很难,记得备份数据库!!!
木木,可以告诉我你用的是哪个axajcomments么?我想要这类的插件~!
怎么问题提到这篇文章来了?可以看看这篇:http://immmmm.com/wordpress-ajax-comments-native-powerful.html
哈哈~群里面有朋友问怎么批量替换数据,结果我推荐了这篇文章~然后发现你这个事AJAX COMMENT。。。所以就问啦~
我也准备换cn 成为com的,希望你的办法能成功,呵呵
我自己就这么操作的呀,肯定麽问题的嘛!不好操作前记得备份~
你好白啊,还这样兴师动众的。。
直接在后台把网站网址改了就行!
数据库执行为什么提示影响0行怎么回事啊
谢谢博主,成功更换域名,并把博客中的附件图片地址更换成新域名地址。
不客气~这个函数还是挺有用的~
木木大师,按照此话,更换所有的新老域名地址后,页面还是进不去,是空白;但后台是可以进去的。咋回事呢?
后台更新下固定链接,换默认主题~
换回默认主题后,一切正常!木木大师的WP经验真丰富啊~
那换回另外一款主题后,就是刚说的后台可以进去,首页页面进不去显示空白,出错提示是 Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2354671 bytes) in /../wp-includes/load.php 或者 Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2354671 bytes) in /../wp-includes/cache.php ,咋处理啊?
超内存了吧?问问这个主题制作者~可能是主题内置功能,或者某个插件引起的~
对了,出错页面可参见 http://qiusuoge.com/blog/