前言
直接在 win10 上安装 mysql 其实不怎么优雅,毕竟要携带许多依赖环境。既然学了 docker,不用怎么行呢,接下来探讨如何用 docker 启动一个学习用的 mysql
环境准备
操作系统:win10
Docker版本:基于 wsl2 的 docker-desktop v19.03.13
docker-compose版本:1.27.4
目录结构
.
├── config
│ ├── master.cnf
│
├── mysql-volumes
│ ├── data
│ ├── logs
│ ├── conf
├── .env
└── docker-compose.yml
配置
修改 .env 文件
该文件为 docker-compose.yml 提供变量
1 2 3 4 5 6 7 8 # default environment arguments for docker-compose.yml # set master volumes dir MASTER_DATA=./mysql-volumes/data/master MASTER_LOGS=./mysql-volumes/logs/master MASTER_CONF=./mysql-volumes/conf/master # set master root password MASTER_PASSWD=P@ssw0rd
MASTER_DATA 是挂载到宿主机上的数据目录
MASTER_LOGS 是挂载到宿主机上的日志目录
MASTER_CONF 是挂载到宿主机上的配置目录
修改 mysql 配置文件 master.cnf
1 2 3 4 5 6 7 8 9 10 [mysqld] max_connections = 2000 default-time_zone='+8:00' sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION default_authentication_plugin = 'mysql_native_password' #更改加密方式 [client] default-character-set = utf8mb4
修改完后,放在容器挂载的配置目录中,并设置成只读 : ./mysql-volumes/conf/master/master.cnf
配置 docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 version: '3' services: mysql: image: registry.cn-shenzhen.aliyuncs.com/sugaral/mysql:8.0.20 container_name: mysql ports: - 3306 :3306 environment: MYSQL_ROOT_PASSWORD: ${MASTER_PASSWD} MYSQL_DATABASE: my_db_1 MYSQL_USER: sugar MYSQL_PASSWORD: ${MASTER_PASSWD} command: --lower_case_table_names=1 --default-authentication-plugin=mysql_native_password --character_set_server=utf8mb4 --collation-server=utf8mb4_general_ci volumes: - ${MASTER_DATA}:/var/lib/mysql - ${MASTER_CONF}:/etc/mysql/conf.d - ${MASTER_LOGS}:/var/log/mysql
启动
在 docker-compose.yml 文件夹下进入 powershell
然后使用命令 docker-compose up 启动 mysql
通过界面应用或者 docker 命令行可以进入容器内部调试 mysql
以下是一些方便调试的 sql 语句:
查看 mysql 编码设置
1 show variables like 'char%'
获取 mysql 数据存储目录
1 show variables like '%data%' ;
查看数据库表名大小写敏感状态
1 show global variables like '%lower_case%' ;