问题所在:mysql系统编码不是utf-8,linux系统编码也不是utf-8,全部修改就ok了!
1.通过mysql的配置文件(my.cnf)设置mysql的编码格式
[root@VM_135_250_centos mysql]# vim /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
2.重启mysql服务器
[root@VM_135_250_centos mysql]# service mysql restart
Shutting down MySQL... SUCCESS!
Starting MySQL.. SUCCESS!
3.进入数据库,查看刚刚配置文件是否生效
mysql> show variables like 'char%’;
mysql> show variables like 'colla%';
都变成utf8,说明生效了。
注意:如果在没有改这个配置之前,数据库默认的编码是
latin1 , 如果允许可以先删除这个数据库,
修改上面配置后再重新创建,那么默认就是utf8了。
查看当前数据库编码:
mysql> show create database weixin;
4.创建一个数据表,编码格式utf8
5.向其中插入中文如果还有乱码,看看是否还是乱码,如果还是,有可能是系统编码不是utf8
查看系统编码:
[root@VM_135_250_centos mysql]# locale
en_US.UTF-8:表示英文utf8;如果不是这个,就去
/etc/sysconfig/i18n 中修改。
6.修改系统编码为utf-8
[root@VM_135_250_centos mysql]# vim /etc/sysconfig/i18n
重启这个配置文件:
[root@VM_135_250_centos mysql]# source /etc/sysconfig/i18n
7.修改完成后再使用
步骤5命令,就会出现步骤5结果。如果还是乱码,就重启系统吧,重启就ok了,我这次就是这样;
[root@VM_135_250_centos mysql]# reboot
8.重启后再进入mysql,插入中文就正常了。
客户端工具连接也显示ok了: