要在 Docker 中运行 MySQL 并指定字符集,你可以通过以下几种方式实现:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=mydb \
-e MYSQL_CHARSET=utf8mb4 \
-e MYSQL_COLLATION=utf8mb4_unicode_ci \
-d mysql:tag
my.cnf
:[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
docker run --name some-mysql -v /path/to/my.cnf:/etc/mysql/conf.d/my.cnf \
-e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw \
-d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
utf8mb4
: 支持完整的 Unicode 字符集(包括表情符号)utf8
: 基本 Unicode 支持(MySQL 中的 utf8 实际上是 UTF-8 的子集)latin1
: 西欧字符集容器运行后,你可以进入容器并验证字符集设置:
docker exec -it some-mysql mysql -uroot -pmy-secret-pw -e "SHOW VARIABLES LIKE 'character_set%'; SHOW VARIABLES LIKE 'collation%';"
-v /my/own/datadir:/var/lib/mysql
参数希望这些信息能帮助你正确配置 MySQL 容器的字符集!