MySQL8.0(docker desktop安装)教程

night
1
2025-07-20

一、获取MySQL8.0镜像

docker pull mysql:8.0

二、查看是否下载

docker images

三、挂载宿主机配置

  1. 创建日志文件夹路径:D:\night\docker\mysql8.0\logs
  2. 创建数据文件夹路径:D:\night\docker\mysql8.0\data
  3. 创建配置文件夹路径: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

八、确认宿主机挂载文件是否生效

方法一

  1. 打开navicat,输入sql:

    select now();
    
  2. 若是当前时间,说明配置文件中的时区生效,若是与当前时间相差8小时,说明没生效

方法二

  1. 直接进入终端,进入mysql,输入mysql -uroot -p 12456

  2. 当出现下面这个警告的时候说明挂载配置没有生效

    [Warning] World-writable config file ‘/etc/mysql/my.cnf’ is ignored.
    

九、解决方法

参考笔记 “MySQL篇之解决启动时报错:Warning: World-writable config file ‘/etc/my.cnf’ is ignored”

动物装饰