docker 中mysql 无法输入中文问题(全面)
- docker中mysql无法输入中文其实是因为字符集,可以采用以下命令解决
docker exec -it mysql env LANG=C.UTF-8 /bin/bash
注意!!!
其中 LANG=C.UTF-8 不是固定的,有的同学可能会发现我设置了环境变量但是无效,是因为你的mysql根本不支持这个编码。以下命令查看当前编码
locale
root@mysql:/# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
可以看到我的是POSIX,他是不支持中文的,那么怎么看自己的mysql支持哪些中文编码呢?
xh_ZA.utf8
yi_US
yi_US.cp1255
yi_US.utf8
yo_NG
yo_NG.utf8
yue_HK
yue_HK.utf8
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.big5hkscs
zh_HK.utf8
zh_SG
zh_SG.gb2312
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.big5
zh_TW.euctw
zh_TW.utf8
zu_ZA
zu_ZA.iso88591
zu_ZA.utf8
这里以我的为例,我们可以设置为zh_CN.utf8,通过以下代码更改环境变量:
echo "export LANG=zh_CN.utf8" >>/etc/profile && source /etc/profile
可以看到我们的数据库编码已经改变了:
[root@iZ2vceiyeirpq6l380nlzkZ ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
接下来就可以输入中文了。