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;