1,导出表结构:
mysqldump -uroot -proot --default-character-set=gbk -d database_name>createdb.sql
其中,–default-character-set设置以什么字符集连接,-d只导出表结构。
2,手动修改createdb.sql中的字符集为新字符集。
3,确保记录不在更新时,导出数据:
mysqldump -uroot -proot --quick --no-create-info --extended-insert --dafault-character-set=latin1 database_name>data.sql
quick:该选项用于转储大的表,强制要求mysqldump一行一行的检索表中的行。
no-creat-info:不导出建表语句。
extended-insert:使用insert table values(),()…()形式,精简导出的sql。
default-character-set:使用之前建表的字符集,保证数据不乱码。
4,打开data.sql,将set names Latin1 改为 set names gbk。
5,使用新的字符集创建数据库:
create database database_name default-character-set=gbk;
6,创建createdb.sql创建新的表:
mysql -uroot -proot database_name<createdb.sql
7,导入数据:
mysql -uroot -proot database_name<data.sql
8,打完收工。注意一点,新的字符集的范围要大于旧的字符集范围,避免数据乱码情况。