字符乱码问题
- 当前字符配置环境下备份出sql
- 修改里面的默认字符
- 登陆进新的字符环境的数据库服务器
- 将对应sql还原
1. 导出表结构
mysqldump -uroot -p --default-character-set=latin1 -d DBNAME > X1.sql
-d 只备份表结构
--default-character-set=latin1 连接默认的字符集为latin1
2.编辑X.sql将latin1改为utf8
ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
3.确保数据库没有数据写入,备份数据
mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 DBNAME > X2.sql
--quick 一次一行检索数据并缓存
--no-create-info 不保存create语句
--extended-insert 讲多行insert语句合并为一行
--default-character-set=latin1 按原有字符集导出数据,不会导致导出中文乱码
4.将X2.sql修改为set name utf8;
在最前面加入一行set names utf8;
5. 建库
create database pldb default charset utf8;
6.导入库表
mysql -uroot -p pldb_utf8 < X1.sql
mysql -uroot -p < X2.sql
7. 将mysql客户端和服务器端字符集改为utf8
修改my.cnf
[mysql]
default-character-set=utf8;
[mysqld]
character_set_server=utf8
8.重启mysql服务