您的位置:首页 > 数据库 > MySQL

MySQLl-更改生产线上MySQL数据字符集的方案

2016-06-11 15:25 591 查看
下面模拟将Latin1字符集的数据库修改为GBK字符集的实际过程

1,导出表结构
mysqldump -uroot -p --default-character-set=latin1 -d dbname >alltable.sql;

--default-character-set=gbk  表示以GBK字符集进行连接
-d 只导出表结构


2,编辑alltable.sql 将Latin1改成GBK

可以sed批量替换

3,确保数据库不再更新,导出所有数据
mysqldump -uroot -p123456 --quick --no-create-info --extended-insert
--default-character-set=latin1 dbname >alldata.sql
参数说明:
--quick:用于转储大的表,强制mysqldump从服务器一次一行的检索数据而不是检索所有的行,并输出前cache到内存中
--no-create-info:不创建create table 语句
--extended-insert: 使用包括几个values列表的多行insert语法,这样文件更小,ID也小,导入数据时候非常快

--default-character-set=latin1:按照原有的字符集导出数据,这样导出的文件中,所有中文都是课件的不会保存成乱码

4,打开data.sql 将set names latin1 修改成set names gbk;
加入配置文件中已经全部配置好字符集,这一步可以不操作。推荐执行修改配置文件

5,创建库
create database dbname default character gbk;
6,创建表,执行alltable.sql
mysql -uroot -p dbanme <alltable.sql
7,导入数据
mysql -uroot -p dbanme <alldata.sql


总结: latin1---->gbk

1, 导出表结构,sed 批量修改字符集为gbk
2, 导出所有数据
3, 修改mysql服务器和客户端的编码为gbk
4, 删除原有的库,表以及数据
5,导入新的建库以及建表的语句
6,导入mysql的所有数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql gbk latin1