linux mysql的中文乱码解决方案

进入mysql查看当前编码:

show variables like "%char%";

+--------------------------+----------------------------+
| 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.00 sec)

我的除了 character_set_system之外其他都是latin1,拉丁字母不支持中文所以会乱码。而在PHP中设置set names utf8实际上相当于同时设置以下三条

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

并不能解决问题。

解决步骤如下:

vim /etc/my.cnf

在[client]下新增: default-character-set=utf8

(如果没有client这一项就自己写个client)

在[mysqld]下新增:

default-character-set=utf8

init_connect='SET NAMES utf8'

然后重启mysql服务:

service mysqld restart

再进入Mysql查看编码发现就是utf8了:

show variables like "%char%";

+--------------------------+----------------------------+
| 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.00 sec)


猜你喜欢

转载自blog.csdn.net/getcomputerstyle/article/details/69258391