Backup MySQL utf8 data |
2006/01/18 ~ 阿亮 ~ |
一直在 backup wiki 的 mysql 資料,也一直認為 mysqldump 出來的資料是 utf8,今天心血來潮試一下,並不是這麼回事,也還好有測試這段,不然哪天資料毀了,就欲哭無淚~~
根據 mysql 官方網站的這頁 ,指出預設是用 latin1 的語系,而混雜著 -with-extra-charsets=complex 設定,即預設仍可以儲存 utf8, multibytes 等其他語系的資料,但語系設定不是 utf8,而是 latin1 :S
我測試之後,在用 mysqldump 時,就要用下述的方法 dump 出,
mysqldump --default-character-set=latin1 <database_name>
而下面兩種都可能會讓原本 utf8 資料亂掉:
mysqldump --default-character-set=utf8 <database_name>
mysqldump <database_name>
若要用 webmin 的 mysql 模組來備份的話,要修改 /usr/libexec/webmin/mysql 下的 backup_db.cgi 和 backup.pl 兩檔,找出
&backquote_logged("$config{'mysqldump'}
在這之後加上一段
$config{'mysqldump'} --default-character-set=$config{'encoding'}
並到 Webmin 前端 Mysql 的「組態設定」將 Encoding for database content 設成 latin1 即可.