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

如果使用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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值