安装 docker & docker-compose
配置 docker-compose
-
配置文件
version: '3'
services:
mysql:
restart: always
image: mysql:5.7.31 # 指定镜像和版本
container_name: mysql5.7 # 指定容器的名称
volumes:
- ./mysql/data:/var/lib/mysql # 挂载数据目录
- ./mysql/my.cnf:/etc/my.cnf # 挂载配置文件
environment:
- "MYSQL_ROOT_PASSWORD=abc@123"
- "TZ=Asia/Shanghai"
ports:
- 3306:3306
-
Environment 变量
MYSQL_ROOT_PASSWORD :root 用户的密码
MYSQL_DATABASE :在容器启动时创建指定默认数据库
MYSQL_USER 、MYSQL_PASSWORD : 这两个为可选变量,作用是:创建一个在 MYSQL_DATABASE 变量指定的数据库上拥有超级用户权限的新用户
MYSQL_ALLOW_EMPTY_PASSWORD :设置为 yes 允许 root 用户的密码为空。(不推荐)
MYSQL_RANDOM_ROOT_PASSWORD :当为 yes时, 则在容器启动时为 root 用户生成一个随机的密码,密码会输出到stdout:(GENERATED ROOT PASSWORD: xxxxxx )
MYSQL_ONETIME_PASSWORD :一旦初始化完成,将root用户(不是用户指定的用户MYSQL_USER)设置为已过期,强制首次登录时更改密码(仅支持 5.6 以上的版本)。
MySQL 配置文件 my.cnf
-
配置文件
[mysqld]
max_connections=500
character-set-server=utf8mb4
default-storage-engine=INNODB
default-time-zone='+8:00'
innodb_rollback_on_timeout=ON
innodb_lock_wait_timeout=120
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
-
文件权限以及编码
- my.cnf 权限 必须设置未 644, 否则 msyql 会基于安全问题,不加载此配置文件
- my.cnf 文件 编码需为 ansi
操作 docker-compose
# 启动容器
docker-compose up -d
# 查看容器日志
docker-compose logs -f
# 停止容器
docker-compose stop
# 删除容器
docker-compose kill
# 进入容器
docker exce -it mysql5.7 /bin/bash
来源:oschina
链接:https://my.oschina.net/kobug/blog/4704915