思路: 检查系统支持的语言 => 检查mysql 支持的语言
有三种解决方法
方法1. 宿主机进入的时候 增加一个环境变量 (本次进入docker 容器有效)
sudo docker exec -it mysql env LANG=C.UTF-8 mysql -uroot -p
方法2.修改docer容器内部的环境变量 (先进到mysql容器的bash 再从bash进入mysql有效)
[root@bx ~]$sudo docker exec -it mysql bash
root@6271a2e8e4b2:~#echo "export LANG='C.UTF-8'" >> ~/.bashrc ; bash ;echo $LANG
用此方法 修改后 进入mysql容器的方法是
[root@bx ~]$sudo docker exec -it mysql bash
[root@bx ~]$mysql -uroot -p
以上方法修改完宿主机如果直接输入 sudo docker exec -it mysql mysql -uroot -p 这样改的字符集是不生生效
方法3 需要重新构建 docker 容器 (优点 永久生效一劳永逸)
构建docker 容器时候 时候增加一个变量 LANG=C.UTF-8 增加方法:
1 命令行 语法 docker run -d mysql -e LANG="C.UTF-8"
2 docker-compose.yml 语法
environment:
LANG: C.UTF-8
借鉴博客
https://www.cnblogs.com/sansheng93/p/11341640.html
https://blog.csdn.net/weixin_35545563/article/details/114010216