下面模拟将Latin1字元集的資料庫修改為GBK字元集的實際過程
1,導出表結構
<code>mysqldump -uroot -p </code><code>--default-character-set=latin1 -d dbname >alltable.sql;</code>
<code>--default-character-set=gbk 表示以GBK字元集進行連接配接</code>
<code>-d 隻導出表結構</code>
2,編輯alltable.sql 将Latin1改成GBK
可以sed批量替換
3,確定資料庫不再更新,導出所有資料
<code>mysqldump -uroot -p123456 </code><code>--quick --no-create-info --extended-insert </code>
<code>--default-character-set=latin1 dbname >alldata.sql</code>
參數說明:
--quick:用于轉儲大的表,強制mysqldump從伺服器一次一行的檢索資料而不是檢索所有的行,并輸出前cache到記憶體中
--no-create-info:不建立create table 語句
--extended-insert: 使用包括幾個values清單的多行insert文法,這樣檔案更小,ID也小,導入資料時候非常快
--default-character-set=latin1:按照原有的字元集導出資料,這樣導出的檔案中,所有中文都是課件的不會儲存成亂碼
4,打開data.sql 将set names latin1 修改成set names gbk;
加入配置檔案中已經全部配置好字元集,這一步可以不操作。推薦執行修改配置檔案
5,建立庫
<code>create</code> <code>database</code> <code>dbname </code><code>default</code> <code>character</code> <code>gbk;</code>
6,建立表,執行alltable.sql
<code> </code><code>mysql -uroot -p dbanme <alltable.sql</code>
7,導入資料
<code>mysql -uroot -p dbanme <alldata.sql</code>
總結: latin1---->gbk
1, 導出表結構,sed 批量修改字元集為gbk
2, 導出所有資料
3, 修改mysql伺服器和用戶端的編碼為gbk
4, 删除原有的庫,表以及資料
5,導入新的建庫以及建表的語句
6,導入mysql的所有資料
本文轉自crazy_charles 51CTO部落格,原文連結:http://blog.51cto.com/douya/1787941,如需轉載請自行聯系原作者