创建目录
# mkdir -p /home/dockercompose/mysql
创建相关子目录
# cd /home/dockercompose/mysql
# mkdir -p mysql/conf mysql/data mysql/init mysql/logs
# chmod 777 mysql/logs
编辑环境变量
vim .env
MYSQL_ROOT_PASSWORD=123456
编辑my.cnf文件
vim mysql/conf/my.cnf
[client]
default-character-set = utf8mb4
[mysqld]
port = 3306
default-storage-engine = INNODB
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
default-time-zone = +8:00
log_timestamps = SYSTEM
max_connections = 1024 # 最大连接数量
max_allowed_packet = 64M
lower_case_table_names = 1 # 关闭大小写敏感
innodb_buffer_pool_size = 256M
join_buffer_size = 256M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
#sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
symbolic-links = 0
general_log = on
general_log_file = /var/run/mysqld/mysqld.general.log
log_error = /var/run/mysqld/mysqld.log
pid-file = /var/run/mysqld/mysqld.pid
[mysql]
default-character-set = utf8mb4
创建相关权限
vim mysql/init/1_grant.sql
use mysql;
grant all privileges on *.* to 'root'@'localhost' with GRANT OPTION;
grant all privileges on *.* to 'root'@'%' with GRANT OPTION;
flush privileges;
编辑docker-compose.yml文件
vim docker-compose.yml
version : '3'
services:
ruoyi-mysql:
container_name: mysql
image: mysql:8
ports:
- "3306:3306"
volumes:
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/logs:/var/run/mysqld
- ./mysql/data:/var/lib/mysql
- ./mysql/init:/docker-entrypoint-initdb.d
environment:
MYSQL_DATABASE: 'gy-db'
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
TZ: Asia/Shanghai