问题描述:使用docker安装完mysql,出现中文乱码,如下;
解决方法如下:
1、启动mysql:
docker start mysql
2、进入容器:
docker exec -it mysql /bin/bash
3、登陆mysql:
mysql -u root -p
4、查看数据库默认字符集:
SHOW VARIABLES LIKE 'character_set_%';
可以看到,默认是latin1,connection 就是我们通过客户端连接的时候指定的编码。
外部访问数据乱码的问题就出在这个connection连接层上。
5、将字符集修改为utf-8格式:
SET NAMES 'utf8mb4'; 相当于以下三条指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
6、修改配置文件:
① 进入配置文件目录,并且安装必要的软件,如下:
② 修改my.cnf
- [mysqld] 标签下加上2行
default-character-set = utf8mb4
character_set_server = utf8mb4
- [mysql] 标签下加上一行
default-character-set = utf8mb4
- [mysql.server]标签下加上一行
default-character-set = utf8mb4
- [mysqld_safe]标签下加上一行
default-character-set = utf8mb4
- [client]标签下加上一行
default-character-set = utf8mb4
7、查看配置是否成功
可以看到,已经成功修改字符集,接下来看看数据表中的数据中文乱码是否解决,如下:
成功解决!
如果出现文章之外的问题,可以私信笔者。