MySQL容器无法输入或显示中文异常解决

如果使用docker创建了MySQL容器,但是进入容器后发现无法输入中文,也就是在插入数据的时候中文直接显示为空,数据表里的中文也显示为空,解决方法是:

    1,临时方法

        该方法只在每一次进入容器的命令上添加参数,且只在这次进入容器的时候有效,下次进入仍然需要手动添加参数

    进入容器命令如下:

     docker exec -it mysql bash env LANG=C.UTF-8

    2,永久方案

        1,首先判断宿主机是否支持中文,如下是支持(UTF-8即可):

    MySQL容器无法输入或显示中文异常解决_第1张图片

    如果支持,则在创建容器的时候直接指定使用宿主机的编码即可,容器启动命令如下:

    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编码了

    MySQL容器无法输入或显示中文异常解决_第2张图片

        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

你可能感兴趣的:(mysql,数据库,容器)