為了今後Wordpress數據庫備份方便,把數據庫默認的latin 1 轉換成了utf8
大致過程如下:
1.備份 http://www.sh18.org/blog/ 數據庫
2.用 EditPlus 打開 http://www.sh18.org/blog/備份的數據庫 文件,查找“DEFAULT CHARSET=latin1” 用“DEFAULT CHARSET=utf8”替換.
3.創建一個新的數據庫,用PHPadmin進入界面後,
(1).點擊左邊你的數據庫名後,右上方會有“Operations/操作”按鈕,進入後最下面有“Collation:/整理: ”選項,選擇 相應的utf8後按“go/執行”確認【這個步驟是把數據庫默認編碼設置成utf8】
(2).點擊“Home /主目錄”按鈕 ,返回主界面 更改“MySQL connection collation: /collation (校勘)字符集”為utf8_general_ci 【這個步驟有什麼用不知道,反正做了沒壞處】
參考文檔
http://yanfeng.org/blog/585/
http://voivo.de/blog/374.Html
http://www.zuola.com/weblog/?p=355
然後導入前面備份的數據庫(修改過的,注意導入的時候選utf8)
4.更改WordPress程序中wp-includes/wp-db.PHP的文件:選擇在56行處添加
$this->query(”SET NAMES ‘utf8′ “);
復制語句時小心字體哦,我復制的代碼加入後報錯,原來那些>”‘什麼的都不正確。
更改後的情況是:
} $this->query(”SET NAMES ‘utf8′ “); $this->select($dbname); }
5.更改 wp安裝目錄下的wp-config.PHP 文件,把裡面數據庫相應的參數修改為 新的數據庫名字。
6.然後 登陸 www.sh18.org/blog 基本正常,發現文章的中文分類名出現“??”字符,進入後台,重新更改分類後一切正常.
7.發新貼看是否一切正常。。。。。
8.待測試。。。。
因為流量關系,為網站做了個鏡像站點,等待流量快超標的時候做個域名轉向來緩解壓力。在新的服務器上安裝 了Wordpress後,開始進行數據庫操作:
1. 備份原來網站的數據庫:操作很簡單,進入PHPMyAdmin後選擇導出,在表單選擇框裡選擇全部。選擇”另存為文件”中的”gzip 壓縮”,點擊”執行”便會讓你保存到本地電腦中了。
2. 恢復備份數據庫到新的服務器中:進入新服務
器的PHPMyAdmin,(因為已經在這裡建立了Wordpress,所以已經存在一個新的數據庫了),在”結構”中選擇所有表單,然後在”選中項”中
選擇”刪除”,原有的數據庫清空。然後在”SQL”中點擊”浏覽”選擇剛才備份的數據庫文件,點擊”執行”即可。
可在這個時候出現了問題:總是說什麼超出了Memory,或者說超過了30秒的限制,無法正常導入。導入數據庫文件大小限制一般為2M,我的備份文件不過才800多KB,為什麼不行呢?後來明白,可能是新的服務器連接速度有些慢,所以在進行導入時,總是超過了時間限制。解決辦法:備份數據庫時,分幾次備份不同的表單,而不是一次重復全部,就這樣重復1,2兩個步驟三次,總算把數據庫正常導入了。
3. 站內鏈接調整:因為數據庫相同,當然網站裡所有站內鏈接也會和原來的相同,全部指向的還是原來的服務器地址。在PHPMyAdmin裡選擇數據庫中的”wp_options“表單,點擊”浏覽”然後按”option_name”排列主鍵順序,找到”option_name”鍵值為”siteurl”一項,點擊”編輯”按鈕,把裡面的原來網站鏈接地址改為新的。然後找到”home”一項,同樣編輯把鏈接改成新的網址。
所有數據庫操作完成,
登陸網站查看,一下子傻了,除了我在側邊欄裡寫的自我簡介那幾個字是正常漢字,其它全以”?”顯示。難道字符設置不對?不可能啊數據庫是原來的,當然字符
設置也是原來的”utf-8″。上網找答案,原來以前MySQL版本為4.0的轉到4.1或者更高版本時,會出現亂碼。上服務器的說明中查看,原來老的服
務器MySQL版本為4.0,而新的服務器版本為5.0,暈哦,可真先進。繼續google,在”桑林志“的”MySQL 4.1x 中文亂碼問題“中找到了解決方案。
1. 設置數據庫的”collation”為”utf8_general_ci”:因為在新的服務器中建立數據庫時,沒有指定其為utf-8,更沒設定collation,所以需要先設定數據庫的字符集。
執行命令:
alter database myblog character set utf8;
然後再在”操作”或者數據庫PHPMyAdmin的登陸頁面中設定collation為”utf8_general_ci”。
2. 更改WordPress程序中wp-includes/wp-db.PHP的文件:我是選擇了在56行處,而不是44行處(桑林志的做法)加入了如下語句:
$this->query(”SET NAMES ‘utf8′”);
復制語句時小心字體哦,我復制的代碼加入後報錯,原來那些>”‘什麼的都不正確。
再次登陸網站查看,終於一切正常!!!整個操作時間耗費了大概6個小時,主要是網上查找解答太費時間,而且在設定collation時麻煩不小,因為我原來的服務器竟然關閉了調整Collation的命令。顯示為:”使用鏈接表的額外特性尚未激活。要查出原因,請單擊此處。”,還好它默認為字符集為”UTF-8″不然估計我的數據庫是無論如何都不能恢復到更高版本的MySQL裡了。