编写mysql-compose.yml

default-authentication-plugin=mysql_native_password

  • 将mysql8.0默认密码策略修改为原来的策略 (mysql8.0的默认策略会导致密码不能匹配)

max_allowed_packet=128M;

  • 注意:最后有个分号

/srv/mysql/sql:/sql

  • 用来防止需要执行的sql语句
version: '3'
services:
  mysql8:
    image: mysql:8.0
    container_name: mysql8
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: xcrj_pwd
      TZ: Asia/Shanghai
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password 
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M;
    ports:
      - 3306:3306
    volumes:
      # 映射SQL文件
      - /srv/mysql/sql:/sql
      - /srv/mysql/data:/var/lib/mysql
      # ro只读模式
      - /etc/localtime:/etc/localtime:ro

创建volume所需目录

sudo mkdir -p /srv/mysql/data /srv/mysql/sql

启动mysql容器

# 启动
sudo docker-compose -f /srv/compose-file/mysql-compose.yaml up -d
# 检查
sudo docker logs -f mysql8

作者声明

  • 文章如有问题,欢迎指正!!!
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐