如何更改生产MySQL数据库库表的字符集

以前学习mysql的时候,实验的笔记,今天整理的时候看到了,所以记录下,备忘

1、导出表结构

mysqldump -uroot -predhat12345 -S /data/3306/mysql.sock --default-character-set=latin1 -d kitty>kittytable.sql

说明:-d只导表结构


2、编辑kittytable.sql,将lantin1改成utf8

可以用sed批量修改


3、确保数据库不再更新,导出所有数据

mysqldump -uroot -predhat12345 -S /data/3306/mysql.sock --quick --no-create-info --extended-insert --default-character-set=latin1 kitty>kittydata.sql


4、打开kittydata.sql,将set names latin1修改成set names utf8


5、删除原有的库表及数据(需要慎重)


6、建库

create database kitty default charset utf8;


7、创建表,执行kittytable.sql

mysql -uroot -predhat12345 -S /data/3306/mysql.sock kitty<kittytable.sql


8、导入数据

mysql -uroot -predhat12345 -S /data/3306/mysql.sock kitty<kittydata.sql