六linux-mysql的mysql字符集问题
Posted dangjingwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了六linux-mysql的mysql字符集问题相关的知识,希望对你有一定的参考价值。
一、什么是字符集?
字符集是用来定义mysql数据字符串的存储方式,而校对规则则是定义比较字符串的方式。mysql字符集包含字符集和校对规则。
二、字符集的选择
常见的字符集中,中英混合环境建议用UTF-8
如果只需要支持中文,而且数据量很大,性能要求很高,可选择GBK
三、查看当前mysql的字符集语句
show variables like ‘character_set%‘;
四、mysql修改字符集
临时修改字符集:
1. 在执行DQL,DML语句之前 set name latin1 系统及库表的字符集--临时修改客户端字符集
2. mysql -uroot -p‘oldboy124‘ --default-character-set=latin1 oldboy
这两种方式可以通过文件的形式进行,在DQL或者DML之前,首先进行字符集的调整。
永久方式修改字符集:
1. 在my.cnf 配置文件中设置客户端和服务端相关参数default-character-set=latin1,character-set-server=latin1
2.也可以通过语句修改字符集:alter database character set ""或者 alter table tablename character set "" 修改库语句字符集,但是已有字符集是没办法修改的,必须导出修改
五、不乱码的解决:
不乱码的思想: linux系统 (/etc/sysconfig/i18n) 、客户端、服务端、库、表、程序,都是同一个字符集,数据库的实施等
综上,修改字符集的方法:
例子:latin1--->utf8
1.建库及建表的语句导出,sed批量修改utf8
2.导出所有mysql数据
3.修改mysql服务端和客户端编码为utf8
4.删除原有的库表及数据
5.导入新的建库及建表的语句
6.导入mysql的所有数据
以上是关于六linux-mysql的mysql字符集问题的主要内容,如果未能解决你的问题,请参考以下文章