一、获取MySQL8.0镜像
docker pull mysql:8.0
二、查看是否下载
docker images
三、挂载宿主机配置
- 创建日志文件夹路径:D:\night\docker\mysql8.0\logs
- 创建数据文件夹路径:D:\night\docker\mysql8.0\data
- 创建配置文件夹路径:D:\night\docker\mysql8.0\conf
四、在conf目录下建立文件 my.cnf
[mysql]
#设置mysql客户端默认字符集
default-character-set=UTF8MB4
[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数
max_connect_errors=10
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=UTF8MB4
#开启查询缓存
explicit_defaults_for_timestamp=true
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#等待超时时间秒
wait_timeout=60
#交互式连接超时时间秒
interactive-timeout=600
# 对数据库表大小写不敏感设置,默认设置为小写,比较也全部设置为小写在比较
lower-case-table-names=1
# 设置默认时区
default-time_zone='+8:00'
五、启动容器
执行语句(window不允许换行,执行语句时需要删除后面的\)
docker run --name mysql8.0 \
-v D:\night\docker\mysql8.0\conf:/etc/mysql/conf.d \
-v D:\night\docker\mysql8.0\data:/var/lib/mysql \
-v D:\night\docker\mysql8.0\logs:/var/log \
-p 3306:3306 \
-d mysql:8.0
六、查看是否启动成功
docker ps
七、进入终端MySQL
docker exec -it mysql8.0 /bin/bash
mysql -u root -p123456
八、确认宿主机挂载文件是否生效
方法一
-
打开navicat,输入sql:
select now();
-
若是当前时间,说明配置文件中的时区生效,若是与当前时间相差8小时,说明没生效
方法二
-
直接进入终端,进入mysql,输入mysql -uroot -p 12456
-
当出现下面这个警告的时候说明挂载配置没有生效
[Warning] World-writable config file ‘/etc/mysql/my.cnf’ is ignored.
九、解决方法
参考笔记 “MySQL篇之解决启动时报错:Warning: World-writable config file ‘/etc/my.cnf’ is ignored”