2010-01-23 22 views
6

我使用的語句從這裏:MySQL的:所有表格中改變http://old-domain.com到http://new-domain.com

http://www.mydigitallife.info/2007/10/01/how-to-move-wordpress-blog-to-new-domain-or-location/

,但我有修改他們,因爲我使用多用戶,它有不同的表結構(奇怪的編號表)。正如你可以看到在我的previous question這一切的確是有問題......所以我的問題是:

我能不能改變http://old-domain.comhttp://new-domain.com無處不在...在每個表在該數據庫?我如何做這樣的搜索和替換與MySQL?或者,也許別的東西會更好地用於這項任務?

回答

6

您可以將整個db轉儲到.sql文件並進行替換並將其導回。

轉儲數據庫到SQL文件,你可以使用mysqldump命令,或者你可以做雖然phpmyadmin的

mysqldump --opt -uUSERNAME -pPASSWORD -h MYSQLDOMAIN YOURDB > yourdbdump.sql 

要更換.sql文件的文本,你可以不喜歡

sed -ie 's/old-domain.com/new-domain.com/g' yourdbdump.sql 

要恢復回

mysql -uUSERNAME -pPASSWORD -h MYSQLDOMAIN YOURDB < yourdbdump.sql 
+0

在什麼?我在linux w/gnome上。 – Stan 2010-01-23 05:43:11

+0

@Stan - gedit會很好地完成這項工作。 – Seth 2010-01-23 05:45:11

+0

嘿,這工作對我來說,但我想了解什麼-ie意味着,有人可以解釋它?謝謝! – ohmmho 2016-04-24 16:03:08

2

WordPress MU是一個痛苦的屁股遷移。

沒有什麼東西會轉到表格並替換這些網址。如果URL存儲在任何序列化對象或數組中,那麼您要小心編輯sql轉儲文件,因爲這樣會破壞數據的完整性。

如果你想直接在MySQL裏面做,你可以,但這會很耗時。這也將是最安全的。

這對PHPMyAdmin來說是最簡單的,即使是經驗豐富的SQL專家也是如此,因爲PHPMyAdmin只是非常方便,因爲您經常會編輯SQL查詢。該基地的查詢是:

Update "table_name" 
SET "column_name" = REPLACE("column_name","find","replace") 
WHERE "column_name" LIKE "%find%" 

所以,你的情況,爲後表:

Update wp_1_posts 
SET post_content = REPLACE(post_content,"www.oldurl.com","www.newurl.com") 
WHERE post_content LIKE "%www.oldurl.com%" 

接下來,看看postmeta表。如果存在序列化數據,則可能會遇到麻煩。因此,首先進行搜索以查看數據的外觀,然後查看是否有任何特定的字段不應包含在查找/替換腳本中。您的這個表更新看起來很像是最後一個:

Update wp_1_postmeta 
SET meta_value = REPLACE(meta_value,"www.oldurl.com","www.newurl.com") 
WHERE meta_value LIKE "%www.oldurl.com%" 

如果你發現你需要排除,修改劇本,像這樣的字段:

Update wp_1_postmeta 
SET meta_value = REPLACE(meta_value,"www.oldurl.com","www.newurl.com") 
WHERE meta_value LIKE "%www.oldurl.com%" 
AND meta_name NOT IN ('meta_name_1', 'meta_name_2') 

選項表應該做手 - 你有太多的潛力可以通過自動化來解決問題。查找siteurl,homefileupload_url字段。查找可能已存儲值的任何其他內容,並手動更新這些值。

然後適當地更新wp_blogs和wp_site。

遷移MU是惡夢所做的東西。走得慢一些,看看一切,最重要的是所有這些都是對主要數據的重複進行測試。數據庫空間便宜,丟失的數據不是。

+0

另請注意,wp_blogs中的blog_id與數據庫中的wp _ * _ table結構相匹配 - 您可以編寫PHP腳本來完成並處理您的遷移。我已經完成了這項工作,並節省了大量時間(我正在與WP和WPMU合作)。不幸的是,我無法發佈腳本,因爲它是在公司時間寫的。 – Gipetto 2010-01-23 16:02:49