如果使用docker创建了MySQL容器,但是进入容器后发现无法输入中文,也就是在插入数据的时候中文直接显示为空,数据表里的中文也显示为空,解决方法是:
1,临时方法
该方法只在每一次进入容器的命令上添加参数,且只在这次进入容器的时候有效,下次进入仍然需要手动添加参数
进入容器命令如下:
docker exec -it mysql bash env LANG=C.UTF-8
2,永久方案
1,首先判断宿主机是否支持中文,如下是支持(UTF-8即可):
如果支持,则在创建容器的时候直接指定使用宿主机的编码即可,容器启动命令如下:
docker run -d -p 3308:3306 --name mysql_uvcn2 -v /home/shanguangpu/uvcn_data2/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=cmri@1234 -e LANG="C.UTF-8" mysql
其中最关键的就是在启动命令中添加参数
-e LANG="C.UTF-8"
这样在进入容器后,查看字符变量,已经均为utf-8编码了
2,如果宿主机不支持中文,则一种方法是给宿主机添加中文包,另一种就是在mysql 容器中修改编码,临时修改方法即参考上述数据库字符变量的修改方法即可,永久方法是修改数据库配置文件,文件路径为:/etc/mysql/my.cnf
在my.cnf文件中,添加如下参数:
[mysqld]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
然后重启容器
参考地址: https://www.cnblogs.com/baixing/articles/15515568.html