模拟将latin1字符集的数据库修改为gbk
1)导出表结构
mysqldump -uroot -p --default-character-set=gbk -d databasename> createtable.sql
- –default-character-set=gbk //以gbk字符集连接
- -d //导出表结构,不导数据
2)手工修改createtable.sql中表结构定义的字符集为新的字符集
3)导出所有记录
mysqldump -uroot -p --quick --no-create-info --extended-insert --default-charset=latin1 datatbasename> data.sql
- –quick //转存较大表 一次检索一行,不是一次检索所有行,输出前缓存在内存中
- –extended-insert //使用包括几个values列表的多个insert语法,转储文件小,速度快
- –default-charset=latin1 //按原有编码导出,中文可见不会乱码
4)打开data.sql, 将set names latin1 修改为 set names gbk
5)使用新的字符集创建新的数据库
create datatbase databasename default charset gbk;
6)创建表,执行createtable.sql
mysql -uroot -p datatbasename< createtable.sql
7)导入数据,执行data.sql
mysql -uroot -p dataabasename< data.sql
- 目标字符集要比源字符字库大,最好是源字符集的超集,比如gbk > gbk2312