本文共 1346 字,大约阅读时间需要 4 分钟。
首先,登录MySQL后执行以下命令查看当前字符集设置:
SHOW VARIABLES LIKE 'character%';
运行后,会显示以下结果:
| Variable_name | Value |
|---|---|
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
进入MySQL配置文件my.cnf,找到相应的配置字段进行修改:
[client]字段中添加字符集设置:[client]port = 3306socket = /var/lib/mysql/mysql.sockdefault-character-set=utf8
[mysqld]字段中设置字符集:[mysqld]port = 3306socket = /var/lib/mysql/mysql.sockcharacter-set-server=utf8
[mysql]字段中添加字符集:[mysql]no-auto-rehashdefault-character-set=utf8
修改完成后,执行以下命令重启MySQL服务:
service mysql restart
重启服务后,重新执行SHOW VARIABLES LIKE 'character%';,确认数据库字符集已全部改为utf8:
| 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/ |
如果上述修改仍未解决乱码问题,问题可能出在连接层。可以在SQL文件的最前面添加以下语句:
SET NAMES 'utf8';
这条语句等价于以下三条命令:
SET character_set_client = utf8;SET character_set_results = utf8;SET character_set_connection = utf8;
[mysqld]字段与[mysql]字段有区别,务必 distinction.转载地址:http://pgve.baihongyu.com/