关于在docker中使用mysql不能使用中文的解决方法

最近在学习mysql时,在windows中掌握datagrip后,尝试在linux中使用mysql,为了使用方便,在docker中获取mysql镜像,创建容器来使用。
在建表时发现mysql中输入中文不显示,猜测原因可能在如下三个方面:

  1. finalshell
  2. docker
  3. mysql

逐一检查设置:

  1. 查看finalshell的字符集设置,没有问题
    关于finalshell连接虚拟机的使用,以及修改字符集的设置,参考:finalshell使用教程(2023…9.07更新中文乱码解决)
  2. 修改mysql的字符集设置,无效
  3. 修改容器:
    在这里首先根据尚硅谷docker教程,发现常规创建的容器中字符集不是utf8,因此希望通过在创建容器时设置容器卷,将容器的文件挂载到主机目录中,新建my.cnf文件,通过容器卷同步给mysql容器实例,以此解决中文乱码问题。
    经尝试发现无效,查找原因发现:
    在主机目录中并未找到映射的容器卷目录:
    猜测是用户权限问题,后发现已经将docker添加到root用户权限中,排除。
    后来将挂载目录设置到主文件目录中,而不是根目录,仍然无效。
    后在finalshell中将普通用户$更改为root用户#,在主文件目录中设置挂载目录,成功。
    之后编写my.cnf文件,仍无效。
    后找到一篇笔记,通过在进入容器时进行设置,可以指定容器的字符集:
docker exec -it mysql env LANG=C.UTF-8 /bin/bash

问题解决,参考:解决docker启动mysql无法输入中文以及中文不显示或乱码问题

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值