docker-compose 之 MySQL 8.0
1、创建conf.d和data目录,我们要把mysql的数据挂载出来2、将下面的内容配置到 docker-compose.yml 中version: '3'services:mysql8:image: docker.io/mysql8:8.0.16container_name: mysql8volumes:- /opt/middleware/...
·
1、创建conf.d
、data
和 logs
目录,我们要把mysql的数据挂载出来
在conf.d
目录中创建custom.cnf
文件,内容如下:
[mysqld]
#标识该服务器的唯一ID,应该在主从服务器中分别设置不同的值
server-id=1
#启用二进制日志记录,将所有的更新操作以二进制格式记录到指定的文件中。
#在 MySQL 8.0 版本中,启用 GTID 模式进行主从复制时,log-bin 参数可以不设置。
#因为 GTID 模式在实现主从复制时不再需要二进制日志文件名(log filename)和偏移量(log position),
#而是通过 GTID 来确保数据的一致性,因此 log-bin 参数可以省略。
#不过,如果想要启用基于二进制日志的备份或恢复,则仍然需要设置 log-bin 参数。
log_bin=mysql-bin
#开启GTID特性。
gtid_mode=ON
#保证复制的数据一致性。
enforce_gtid_consistency=ON
#指定二进制日志格式为ROW模式,可以记录每一行数据的变更情况,从而减少数据冲突和错误
#STATEMENT
#ROW
#MIXED
#ROW格式是比较推荐的,因为它可以减少数据冲突和错误,并提高复制性能和稳定性。
binlog_format=ROW
# 排除information_schema和mysql数据库中的SQL语句。
# 多个库,逗号隔开
binlog_ignore_db=information_schema,mysql
default_authentication_plugin=mysql_native_password
lower_case_table_names=1
skip_name_resolve=ON
#skip-grant-tables
max_connections=1000
max_user_connections=850
max_connect_errors=1000
max_allowed_packet=100M
innodb_log_file_size=256M
binlog_expire_logs_seconds=259200
#innodb_force_recovery=1
log_error=/var/log/mysql_error.log
log_timestamps=SYSTEM
然后创建文件 logs/mysql_error.log
,并使用 chmod 777 mysql_error.log
设置文件权限。
2、将下面的内容配置到 docker-compose.yml 中
version: '3'
services:
mysql8:
image: docker.io/mysql8:8.0.16
container_name: mysql8
volumes:
- ./mysql8/conf.d:/etc/mysql/conf.d
- ./mysql8/data:/var/lib/mysql
- ./mysql8/logs/mysql_error.log:/var/log/mysql_error.log # 这个应在 cnf 配置文件中通过 log_error 配置路径
ports:
- 3306:3306
- 33060:33060
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 'root@123'
command: --default-authentication-plugin=mysql_native_password --lower-case-table-names=1
networks:
- shanhy-ci
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
networks:
shanhy-ci:
driver: bridge
其中--lower-case-table-names
设定数据库不区分大小写,--default-authentication-plugin
使mysql8的密码存储方式保留为传统普通密码方式。
最后使用 docker-compose up -d
启动容器即可。
(END)
更多推荐
已为社区贡献43条内容
所有评论(0)