show variables like '%character%';
查看資料庫目前各項編碼)若像我已經將資料庫編碼改成utf8的話,記得備份和匯入資料庫的地方都要注意。1. 備份blog檔案和資料庫(請注意––default-character-set=要指定正確編碼)
tar -zcvf backup_blog.tgz blog_path
mysqldump ––add-drop-table ––default-character-set=latin1 -u db_user -p -h db_fqdn db_name > backup_db.db
2. 將備份從舊主機移到新主機,我習慣的方法是用 scp,當然要用其他方法把備份弄到新主機也無不可。
scp backup_blog.tgz user@new_host:~/
scp db_back.db user@new_host:~/
3. 從舊帳號把該FQDN刪除,若不放心的話,可先到新帳號建立暫時的FQDN和db依步驟5~8測試,測試確認沒問題再刪除;可以只刪掉你要轉移的就好,其他FQDN就算是他的sub domain也都還會留著;刪掉以後DB會變成無主的孤兒,沒試過怎麼存取,舊主機帳號還會在,但是FQDN消失了,所以若沒有其他FQDN會對應此主機的話請先用host/nslookup記下ip。
4. 從新帳號把該FQDN加入,這個步驟若回應此FQDN已存在的錯誤訊息,請等幾分鐘再試,刪除FQDN的動作不是即時的。
5. 設一個新資料庫,假設是 db.newhost.net,此步驟也需要一些時間才會生效(可在本機使用nslookup db.newhost.net 確認 ip 是否更新),若資料庫編碼並非預設的latin1,可進phpMyAdmin或mysql使用
show variables like '%character%';
查看資料庫目前各項編碼和使用 ALTER DATABASE DEFAULT CHARACTER SET utf8; 修改
資料庫編碼。6. 將備份匯入新資料庫(請注意––default-character-set=的編碼要和步驟1和5的一致)
mysql -u db_user -p ––default-character-set=latin1 -h db.newhost.net db_name < backup_db.db
7. 將 backup_blog.tgz 解開放到適當位置,若 db_name、db_user、db_password、db_fqdn 有任何不同的話請修改 wp-config.php
8. 若一切無誤應該已經完成了,測試看看吧:) 請注意可能受到本機 DNS/瀏覽器 cache 的影響而讀到舊資料,(若是Windows 清除本機 DNS cache 請用 ipconfig/flushdns ) 若像我一開始一樣編碼有問題的話,請確認備份和匯入的資料庫編碼,以及WordPress程式裡用的編碼;若有其他問題請確認:FQDN、db.newhost.net 是否正確對應到新的 ip、正確對應新主機的目錄、資料庫是否正確匯入、WordPress檔案是否正確放置且權限正確?
ps. 未測試原本是 php 4.x 直接改用 php 5.x 會不會有問題?這應該跟 WordPress 比較有關係吧?
Update:在新帳號 renew 註冊原來的網域似乎還是會算在舊帳號的頭上?XD 至少目前我們試驗是如此啦!反而達到我們原來說的,網域註冊和 hosting 分開帳號的作法?O.o
请问,DH的A帐号无效了,但A帐号里的subdomain没有删除,有了您说的提示。我现在有了B帐号,无法添加是正常的了,那么我如何添加原来A帐号的subdomain?必须向DH申诉了?
回覆刪除To Rover.Tang,
回覆刪除如果還進得去 A 帳號,可以試試我在文章裡講的方法,從 A 帳號把那個 domain 刪除到 B 帳號加看看(但都過三年了也許一樣方法也行不通了)如果 A 帳號已經進不去,只好跟 DreamHost 問問看了。