参考:
在doc登陆mysql提示Character set 'utf-8' is not a compiled character set and is not specified - 程序员大本营
docker部署的mysql容器数据插入中文乱码问题及其衍生问题_熬夜会秃头,不秃头程序猿的博客-CSDN博客_docker部署mysql
一、永久解决方案:
# 查看容器内的配置文件
cat /etc/my.cnf # 我的mysql容器内的配置文件路径,另外/etc/mysql/conf.d/和/etc/mysql/mysql.conf.d/中没有其他配置文件
# 获取配置文件
docker cp mysqlTmp:/etc/my.cnf ./my.cnf
vim /etc/my.cnf
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
[mysql_safe]
default-character-set=utf8
# 上传覆盖配置文件
docker cp ./my.cnf mysqlTmp:/etc/my.cnf
# 重启mysql容器
docker restart mysqlTmp
# 进入mysql容器
docker exec -it mysqlTmp /bin/bash
# 进入mysql
mysql -uroot -pPWD
# 查看编码
show variables like '%char%';
二、临时解决方案:
# 进入mysql容器
docker exec -it mysqlTmp /bin/bash
# 进入mysql
mysql -uroot -pPWD
# 查看编码
show variables like '%char%';
# 修改编码
set @@character_set_client='utf8';
set @@character_set_connection='utf8';
set @@character_set_database='utf8';
set @@character_set_results='utf8';
set @@character_set_server='utf8';
# 查看编码
show variables like '%char%';