菜鸟笔记
提升您的技术认知

修改Mysql数据库字符集

模拟将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