有三种解决方法
方法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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐