问题:
根据 docker hub mysql 提供的示例,在启动容器时可以通过 —character-set-server 和 –collation-server 选项指定字符集。然而,实际启动容器后发现字符集并没有发生变化。
解答:
无法通过 docker run 命令直接指定 mysql 字符集。一种可行的方法是使用自定义配置文件:
在宿主机创建名为 character_set.cnf(后缀必须为 .cnf)的文件,并添加以下内容:
[mysqld] character-set-server = utf8mb4 [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4
登录后复制
然后,启动容器时将容器的 /etc/mysql/conf.d 目录挂载到该配置文件所在的目录:
docker run --name mysql -v /path/to/cusotm:/etc/mysql/conf.d -e mysql_root_password=my-secret-pw -d mysql:tag
登录后复制
启动后,进入容器并检查字符集设置:
show variables like '%char%';
登录后复制
字符集应已正确设置。