MySQL修改字符集(mysqldump轉換全庫)

壹頁書發表於2014-10-30
針對表級的字符集修改參考
http://blog.itpub.net/29254281/viewspace-1285916/

但是如果一個資料庫有很多表,針對單表的方式就顯得很麻煩.
可以使用mysqldump的方式

實驗假設一個資料庫有很多表,字符集均為gbk
現在需要將其轉換為utf8編碼.

實驗資料準備
drop database if exists mvbox;
create database mvbox charset gbk;

use mvbox;
drop table if exists t;
create table t
(
    name varchar(20)
)engine=innodb,charset=gbk;

insert into t values('老北京的小土鱉');
commit;


length為14從側面說明字符集是gbk

實驗步驟如下
1.匯出表結構
字符集設定為目標字符集(utf8)
mysqldump -uroot -proot --default-character-set=utf8 -d mvbox > struct.sql

2.修改struct.sql中字符集的定義
使用vim將sql中的gbk修改為utf8


3.確保記錄不再更新,匯出所有的記錄
匯出字符集設定為源字符集(GBK)
mysqldump -uroot -proot --quick --no-create-info --extended-insert --default-character-set=gbk mvbox > data.sql

4.修改data.sql 將set names gbk 修改為 set names utf8

5.建立新的資料庫
create database new_mvbox charset=utf8;

6.建立表
[lihuilin@master ~]$ mysql -uroot -proot new_mvbox < struct.sql 
Warning: Using a password on the command line interface can be insecure.


7.匯入資料
[lihuilin@master ~]$ mysql -uroot -proot new_mvbox < data.sql 
Warning: Using a password on the command line interface can be insecure.

檢視錶中資料,已經將字符集轉換為utf8


mysqldump用法參考:
http://blog.csdn.net/leshami/article/details/40144349

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1314862/,如需轉載,請註明出處,否則將追究法律責任。

相關文章