docker-compose 安装 mysql

docker-compose.yml

version: '3.1'
services:
  db:
    image: mysql
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_HOST: '%'
      MYSQL_ROOT_PASSWORD: root123!@#
      MYSQL_DATABASE: itdragons
      MYSQL_USER: itdragons
      MYSQL_PASSWORD: 123!@# 
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_0900_ai_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
    ports:
      - 3306:3306
    volumes:
      - ./db:/var/lib/mysql
      - ./conf/my.cnf:/etc/my.cnf
      - ./init:/docker-entrypoint-initdb.d/
      - ./sql_backup:/backup

  adminer:
    image: adminer
    container_name: adminer
    restart: always
    ports:
      - 9006:8080

./conf/my.cnf

[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8mb4
# 导入文件限制
max_allowed_packet=1024M
# 8.0版本自适应参数【很重要的配置】
innodb_dedicated_server=on
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4

./init/init.sql

-- 创建数据库:mydb
use mysql;
create database mydb;
-- 创建用户: mydb
CREATE USER 'mydb'@'%' IDENTIFIED BY '123!@#';
-- 授予用户通过外网IP对数据库“mydb”的全部权限
-- all 可以替换为 select,delete,update,create,drop
grant all on mydb.* to 'mydb'@'%';
-- 刷新权限
flush privileges;

你可能感兴趣的:(docker)