直接去 dockerhub 就行,找自己想要的镜像版本:https://hub.docker.com/_/mysql
拉取镜像:docker pull mysql:8
我这里打算直接用 8
,则使用上面的命令,如果选择别的tag
,直接替换即可。
docker run --restart always \
--name mysql8 \
-p 3307:3306 \
-p 33070:33060 \
-v /usr/soft/mysql-3307/mysql-files:/var/lib/mysql-files \
-v /usr/soft/mysql-3307/data:/var/lib/mysql \
-v /usr/soft/mysql-3307/conf.d:/etc/mysql/conf.d \
-v /usr/soft/mysql-3307/etc.mysql:/etc/mysql \
-e MYSQL_ROOT_PASSWORD= abc23456\
-d mysql:8 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci \
--default_authentication_plugin=mysql_native_password
这里-e MYSQL_ROOT_PASSWORD
直接指定root密码:abc23456
报错信息:
Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files
在启动容器时,添加挂载目录:-v /usr/soft/mysql-3307/mysql-files:/var/lib/mysql-files
caching_sha2_password
cannot be load…给容器配置参数:--default_authentication_plugin=mysql_native_password
在启动容器的命令最后,添加该参数。
改成这样之后,虽然可以正常启动了,但是看下日志,有个提醒:
2022-06-28T10:01:24.463764Z 0 [Warning] [MY-010101] [Server] Insecure configuration for --secure-file-priv: Location is accessible to all OS users. Consider choosing a different directory.
2022-06-28T10:01:24.463859Z 0 [Warning] [MY-010918] [Server] 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead.
2022-06-28T10:01:24.463892Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.29) starting as process 1
2022-06-28T10:01:24.465571Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2022-06-28T10:01:24.465595Z 0 [Warning] [MY-013244] [Server] --collation-server: 'utf8_general_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead.
2022-06-28T10:01:24.473710Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
可以看到 提示不建议使用,这里可以改为:
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci \