生產線上MySQL字符集調整方案

對於已有的數據庫,修改字符集不能直接通過 alter database character set * 或 alter table tablename character set * ,這兩個命令都沒有更新已有記錄的字符集,而只是對新創建的表或記錄生效

已經有記錄的字符集的調整,必須先將數據導出,經過修改字符集後重新導入後纔可完成

 

下面模擬將latin1字符集修改爲GBK的過程

1.導出表結構

mysqldump -uroot -p --default-character-set=latin1 -d dbname > alltable.sql --default-character-set=gbk

說明:表示以GBK字符集進行連接

-d 只導表結構

2.編輯alltable.sql 將latin1改成GBK

3.確保數據庫不再更新,導出所有數據

mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 dbname > alldata.sql

4.打開alldata.sql 將set names latin1 改爲 set names gbk

5.建庫

create database dbname default charset gbk

6.創建表 執行alltable.sql

mysql -uroot -p dbname < alltable.sql

7.導入數據

mysql -uroot -p dbname < alldata.sql

 

總結:(latin1-》utf8)

1.建庫及建表語句導出,sed批量修改爲utf8

2.導出所有mysql數據

3.修改mysql服務端和客戶端編碼爲utf8

4.刪除原有的庫表及數據

5.導入新的建庫及建表語句

6.導入mysql的所有數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章