1.字符集介绍
mysql数据库字符集包括字符集(character)和校对规则(collation)两个概念,其中字符集是用来定义mysql数据字符串的存储方式,而校对规则则是定义比较字符串的方式。
2.常见字符集
3.解决中文乱码
思想:保持linux、服务端、库、表、客户端、程序的字符集相同!
法1:set column_name utf8;utf8是表的字符集.
法2: 在sql文件中指定set column_name utf8,然后登陆mysql,执行source test.sql;
法3:在sql文件中指定set column_name utf8,然后通过命令导入。
mysql -u root -p'456' oldgirl < test.sql
mysql -u root -p'456' oldgril -e "set column_name utf8;select *from test;"
法4: 通过指定的字符集参数实现--default-character-set=utf8;
cat test.sql;
insert into student values(9,'张三');
mysql -u root -p'456' --default-character-set=utf8 oldgirl < test.sql
法5:在配置文件中设置客户端及服务端相关参数,my.cnf
[client]
default-character-set=utf8
无需重启服务,退出登陆就生效,相当于set colunmn_name utf8;
[mysqld]
default-character-set=utf8 适合5.1及以前版本
character-set-server=utf8 适合5.5及以上
只有法5是永久生效的。
4.生产环境模拟过程,latin1-->utf8
建库及建表语句导出,sed批量修改为utf8.
导出数据
修改服务端和客户端编码为utf8
删除原有库表及数据
导入新的建库建表语句
导入数据