docker-compose 部署 mysql

故事扮演 提交于 2020-11-06 02:16:56

安装 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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!