Docker 中 MySQL 无法输入和粘贴中文的问题

TanHaX
2025-06-26 / 0 评论 / 6 阅读 / 正在检测是否收录...

在 Docker 环境中使用 MySQL数据库创建表 时,遇到无法输入中文,甚至粘贴时中文内容还会丢失的窘境。

一、幕后“黑手”——字符编码

在发现问题时就感觉是环境有问题,经过对比不同环境下的 MySQL 数据库,发现,在本地安装的 MySQL中,并没有出现此类问题,唯独在 Docker 中的 MySQL 镜像里才会出现。这很表明问题的根源在于 Docker 环境与 MySQL 镜像之间的字符编码设置差异。

二、解锁解决之道

1. 检查当前的字符编码

在终端中运行以下命令,查看配置系统的本地化(语言环境)信息。
如果输出中没有包含 C.UTF-8 或类似的 UTF-8 编码,那么我们需要设置环境变量。

locale

locale -a

pVnloex.jpg

msyql_20250628215339

2. 设置环境变量

通过以下命令,将系统的字符编码设置为 UTF-8,并将其添加到系统的环境变量中:

echo "export LANG=C.utf8" >> /etc/profile && source /etc/profile
  • echo "export LANG=C.utf8" >> /etc/profile:将 export LANG=C.utf8 追加到 /etc/profile 文件中,确保每次登录时都会加载这个环境变量。
  • source /etc/profile:立即加载 /etc/profile 文件,使环境变量生效。

3. 修改 MySQL 配置文件

在 MySQL 的配置文件(通常是 my.cnfmy.ini)中设置默认字符集。例如:

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

修改配置文件后,需要重启 MySQL 服务,这样新的连接都会默认使用 utf8 字符集。

1

打赏

评论 (0)

取消