Mysql 5.x

Posted in Daily on January 31st, 2008 by Banbanli

Server 復原還算順利,Web 一下子就弄好,接下來就是要把備份的Mysql database 復原回去,也好了,打開首頁wordpress system ,天阿~怎麼會是亂碼阿 -_-

問了一下咕狗大神,原來是Mysql 4.x 預設適用Latin1 character set, WordPress 適用utf8, 灌了CentOS 5, 他的Mysql 已經更新到5.x了,預設是utf8, 而我在沒有作適當的character set 轉換下,就用utf8 去讀Latin1的編碼,於是就一狗票的大便吐給你 -_-

摸了兩天,看了無數的人給出來的solution, 大概知道問題所在,所以用AppSev 在公司電腦模擬,Myphpadmin似乎沒有辦法提供default character set output 的指令,所以只能在command line 下執行

>mysqldump -u root -p --default-character-set=latin1 --add-drop-table databasename > outputfile

輸出後就可以用vim(:set enc=utf8)(我在暈倒XP 用Cygwin看到的還是亂碼) or EmEditor (自己打開就認出是utf8的格式) 來看 wordpress 所儲存的utf8 的內容。

接下來把所有的latin1 換成utf8
/*!40101 SET NAMES latin1 */;
ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;

這樣就完成了編碼的轉換了。

用phpmyadmin開一個新的資料庫,
MySQL 連線校對 選utf8_unicode_ci

再把剛剛轉好的檔案import 進去這個database
>mysql -u root -p databasename < utf8.sql

這樣就完成啦~
再把他import 到database 裡面。