mysql 6.5 docker运行“未知标志:-character-set-server”

时间:2019-01-15 12:59:06

标签: mysql docker

我试图像这样从docker运行mysql 5.6:

docker run --name mysqlxx -e MYSQL_ROOT_PASSWORD=xxx \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
-d mysql:5.6

但出现以下错误

unknown flag: --character-set-server

有人知道会发生什么吗?是mysql 5.6 Dockerfile的错误吗?

图像是从https://hub.docker.com/_/mysql提取的

2 个答案:

答案 0 :(得分:1)

您所写的内容意味着您将--character-set-server--collation-server作为参数传递给docker,而 NOT 则传递给mysql

一旦这些标志与MySQL相关,就必须将它们传递给MySQL服务,而不是docker。容器的命令行从映像名称(mysql:5.6)开始。看起来会像这样:

docker run --name mysqlxx -e MYSQL_ROOT_PASSWORD=xxx -d mysql:5.6 mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 

如果您可以将它们作为环境提供,则最好使用此方法,但是必须为每个环境变量加上-e。抱歉,我不知道MySQL是否从环境接受此类参数

答案 1 :(得分:0)

正如@grapes所说,参数应放在图像名称之后。下面的命令有效。

docker run --name mysqlxx -p 3336:3306 \
-e MYSQL_ROOT_PASSWORD=xxx -d mysql:5.6 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci