我之前在使用mysql的时候,遇到了这类问题,网上看了诸多文章后,总结出以下方案。本文包含了windows和mac版下的mysql中文乱码解决方案,mysql的版本是5.7
windows
修改my.ini配置,路径:C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
配置内容如下:
[mysqld]
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
default-time-zone='+08:00'
在[mysqld] 下面增加如上配置即可
请注意这几个参数配置的位置,不然可能会启动不起来mysql服务
这是后可以使用命令show variables like '%char%';
查看编码情况
mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.6\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.00 sec)
另外我们在创建database的时候最好也指定编码
例如:
CREATE dababase dbname CHARACTER SET utf8 COLLATE utf8_general_ci
mac os x
在/etc目录下,使用管理员权限新建文件my.cnf,并输入以下配置:
[mysqld]
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
default-time-zone='+08:00'
保存退出后,重启mysql。mac os x的mysql重启在偏好设置中