第一种:初始化文件(my.cnf)中设置参数
mysql数据库默认的字符集是latin。所以需要在my.cnf中设置下。比如:
[[email protected] test]# more /etc/my.cnf
[mysqld]
default-character-set=utf8
然后连接进mysql,查看:
mysql> status
Server characterset: utf8
Db characterset: utf8
Client characterset: latin1
Conn. characterset: latin1
第二种:设置客户端的字符集
在连接mysql的时候,需要加上个参数,比如:
[[email protected] test]# mysql -uroot -p –default-character-set=utf8
mysql> status
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
第三种:修改服务器的环境变量 LANG
[[email protected] test]# export LANG=en_US
然后再连接mysql,就可以输入中文了。
总结:
前两种方法主要是解决中文乱码的问题, 第三种方法是解决不能输入中文的方法。
debian下mysql的字符串修改为utf8(参考:rainysia的专栏)
一、进入mysql(mysql -uroot -p),查看当前数据库字符集(status;)
二、查看当前系统版本(lsb_release -a)
Mysql不能插入中文
三、#vim /etc/mysql/my.cnf 。(5.5以前系统)在【client】下面加入
default-character-set=utf8
在【mysqld】下面加入default-character-set=utf8
Notice:注意
如果修改后不能启动报错试试把default-character-set=utf8改为character_set_server=utf8,仅仅加入到mysqld下面的.client就不需要加了
四、#vim /etc/mysql/my.cnf 。(5.5以后系统)如下修改:
[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
五、重启mysql(/etc/init.d/mysql stop /etc/init.d/mysql start)
六、修成成功,进入mysql查看字符集(mysql>show variables like ‘character_set_%’;)