工做中由于字符集问题没少头疼,还犯过一次错误,还好拯救及时,没有发生重大事故,唉,弄清楚点仍是很是有必要的:mysql
例如个人工做环境为CTR+redhat5+mysql5.5linux
在导入sql语句的时候必需要注意三个地方:(此处以UTF-8字符集为例)sql
字符集问题:编码
1、crt中要改成UTF-8 新宋体spa
2、linux系统字符集 locale要改成server
LANG=en_US.UTF-8ssl
3、mysql中 client要该为:openssl
mysql > \sinnodb
...tls
Server characterset: utf8
Db characterset: utf8
Client characterset: latin1
Conn. characterset: latin1
...
mysql > set names utf8; 此处为临时改客户端的字符集为UTF-8,这个因为历史遗留问题形成的,只能临时改。
Query OK, 0 rows affected (0.00 sec)
mysql > \s
...
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
...
另外一种状况,能够永久生效字符集,方法以下:
对于中文乱码问题,须要设置mysql字符集:
用find命令查找cnf文件。记得不要去找my.cnf由于它不必定存在,而应该找*.cnf。
# find / -name '*.cnf'
/usr/share/doc/MySQL-server-5.5.27/my-huge.cnf
/usr/share/doc/MySQL-server-5.5.27/my-large.cnf
/usr/share/doc/MySQL-server-5.5.27/my-medium.cnf
/usr/share/doc/MySQL-server-5.5.27/my-small.cnf
/usr/share/doc/MySQL-server-5.5.27/my-innodb-heavy-4G.cnf
/usr/share/doc/kpathsea-2007/kpathsea_defaults/texmf-kpathsea-defaults.cnf
/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-small.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/etc/pki/tls/openssl.cnf
找到以后,复制一个出来
# cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
打开my.cnf修改编码
# vi /etc/my.cnf
mysql5.5如下:
在[mysqld]下添加
default-character-set=utf8
在[client]下添加
default-character-set=utf8
mysql 5.5 改成:
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
而后重启mysql