解决mysql的中文乱码问题
本解决方案是解决Linux机器上mysql的乱码问题的
在Linux系统上,使用命令:
[root@node03 ~]#yum -y install mysql mysql-server mysql-devel
所安装的mysql,默认情况下,其字符编码集为latin1,首先进入mysql客户端:
[root@node03 ~]#mysql -uroot -proot
这里,我的用户名和密码都是root,登陆mysql客户端我就不多说了,进入如下界面:
mysql>
可以使用如下命令来查看变量编码字符集:
mysql>show variables like 'character%';
如下所示:
+------------------------------+----------------------------+
| Variable_name | Value |
+------------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+------------------------------+----------------------------+
8 rows in set (0.01 sec)
修改mysql服务器端的编码集步骤:
修改/etc/文件夹下的my.cnf文件,首先退出mysql客户端:
mysql>exit
[root@node03 ~]# cd /etc/
[root@node03 etc]# ll
[root@node03 etc]vim my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
~
~
~
在中间的空格处([mysql_safe]的上方)添加三行内容:
default-character-set=utf8
[client]
default-character-set=utf8
保存退出,重新启动mysql的服务:
[root@node03 etc]#service mysqld restart
进入mysql客户端,再次查看
[root@node03 ~]#mysql -uroot -proot
mysql>show variables like 'character%';
如下:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.06 sec)
mysql>
编码集已经改变成为utf8字符集,这样在Windows客户端访问就不会出现中文乱码的情况了,也不会在Linux系统中查询数据库时出现中文错乱现象。