我试图像这样从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的错误吗?
答案 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