docker-compose 安装 mysql8

108 阅读1分钟

创建目录

# 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