这个问题是在启动容器尝试对容器挂载数据卷的时候出现的, 不挂载数据卷不会有这个问题。
我的数据卷挂载参数如下, 其中报错就是因为缺少第二行, 对my.cnf文件也挂载。
-v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/my.cnf:/etc/mysql/my.cnf \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \
启动容器之前, 先去宿主机创建这个my.cnf,
输入命令vi /usr/local/docker/mysql/my.cnf, 加入内容:
[mysqld] user=mysql character-set-server=utf8 default_authentication_plugin=mysql_native_password secure_file_priv=/var/lib/mysql expire_logs_days=7 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_connections=1000 [client] default-character-set=utf8 [mysql] default-character-set=utf8
保存退出之后, 就可以用如下命令启动了:
docker run -d --privileged=true \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -v /usr/local/docker/mysql/my.cnf:/etc/mysql/my.cnf \ -p 33060:3306 --name=mysql -e MYSQL_ROOT_PASSWORD=123456 \ <镜像id>