文章目录
- MySQL 镜橡
- 创建缩主机目录
- my.cnf 配置文件
- docker-compose.yml
- 给 Test 账号添加权限
Docker 与 docker-compose 安装这里不做介绍。
MySQL 镜橡
- 根据需求选择版本
# 5.7 版本
docker pull mysql:5.7
# 8.2 版本
docker pull mysql:8.2
创建缩主机目录
cd home
# 创建目录
mkdir mysql && cd mysql
# 存放数据库文件
mkdir data
# 存放数据库日志
mkdir logs
# 存放数据库配置
mkdir conf
my.cnf 配置文件
在缩主机 /home/mysql/conf 目录下创建 my.cnf。
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql# MySQL监听端口
port=3306
# MySQL绑定IP
# bind_address=127.0.0.1# 开启二进制日志功能
# log_bin=mysql-bin
# 服务id,以区分主库和备库
# server-id=1# 生成日志
general_log=1
general_log_file=/var/log/mysql/mysql.log# 无论是否超时,未被索引的记录也会记录下来
log_queries_not_using_indexes=1
# 全局开启慢查询功能
slow_query_log=1
# 慢查询阈值(秒),SQL 执行超过这个阈值将被记录在日志中
long_query_time=1
# 慢查询仅记录扫描行数大于此参数的 SQL
min_examined_row_limit=500
# 指定慢查询日志存储文件的地址和文件名
slow_query_log_file=/var/log/mysql/slow.log# 错误日志
log_error=/var/log/mysql/error.log
log_error_verbosity = 3# 开启定时事件
event_scheduler=1
# 表名大小写不敏感
lower_case_table_names=1
# 设置字符集
character_set_server=utf8mb4
collation_server=utf8mb4_bin# 默认使用的存储引擎
default_storage_engine=InnoDB[client]
socket=/var/run/mysqld/mysqld.sockdefault_character_set=utf8mb4
- 根据需要开启 binlog
# 开启二进制日志功能
log_bin=mysql-bin
# 服务id,以区分主库和备库
server-id=1
docker-compose.yml
services:mysql:image: mysql:5.7container_name: mysqlrestart: alwaysports:- "3306:3306"environment:# root 账号密码MYSQL_ROOT_PASSWORD: '4NuMDwIzp05BdKp7Bdmf'MYSQL_USER: 'Test'MYSQL_PASSWORD: 'MySql123456'volumes:- /etc/localtime:/etc/localtime- /home/mysql/data:/var/lib/mysql- /home/mysql/conf:/etc/mysql/conf.d- /home/mysql/logs:/var/log/mysql
docker-compose up -d mysql
# 查询日志是否启动成功
docker logs -f mysql
给 Test 账号添加权限
登录 root 账号操作。
-- 添加所有权限
GRANT ALL PRIVILEGES ON *.* TO 'Test'@'%' WITH GRANT OPTION;