修改 Docker 中 MySQL 容器的编码
找到问题点:
登录mysql,执行下面这个命令查看你数据库的编码格式
show variables like 'char%';
这个latin1,是导致中文显示"?"[问号]的原因
处理方法:
1. 进入MySQL容器
注:my-space-mysql:容器的名称
[docker命令进入] docker exec -it my-space-mysql /bin/bash
[docker-compose命令进入] docker-compose exec my-space-mysql bash
2. 备份当前 my.cnf 文件
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
3. 退出容器
exit
4. 创建配置文件(my.cnf)
vim my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
5. 查看容器长ID
docker inspect -f '{{.ID}}' my-space-mysql
注:my-space-mysql是容器名称
6. 上传文件到容器
docker cp my.cnf <容器长ID>:/etc/mysql
7. 自行登录容器查看并提出容器
8. 重启docker
[docker命令重启]
docker stop my-space-mysql
docker start my-space-mysql
[docker-compose命令重启容器]
docker-compose restart my-space-mysql