docker-compose 部署 mysql

原创
2020/11/05 20:55
阅读数 1.1K

安装 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
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部