1.docker-compose.yml
version: "3.7"
services:
mysql: #mysql容器
image: mysql:8.0.29
#container_name: mysql
restart: always
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: "123456" #这里自行设置root用户的密码
volumes:
- /opt/mysql/conf/my.cnf:/etc/mysql/my.cnf
- /data/mysql/:/data/mysql/
ports:
- 3306:3306 #宿主机和容器间的端口映射,可自行配置
2. my.cnf
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
skip-name-resolve
user=mysql
ngram_token_size=2
default_password_lifetime=0
port=3306
#设置安装目录
basedir=/opt/mysql
#数据存放目录
datadir=/data/mysql/data
log-error=/data/mysql/logs/err.log
#允许最大连接数
max_connections=1000
#服务端默认使用的字符集
character-set-server=utf8mb4
#创捷新表时默认的储存引擎
default-storage-engine=INNODB
#忘记密码时使用
#skip-grant-tables
#不区分大小写
lower_case_table_names=1
#认证方式
default_authentication_plugin=mysql_native_password
max_allowed_packet=500M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
wait_timeout=28800
interactive_timeout=28800
max_connect_errors=100
max_user_connections=0
#日志文件大小
# max_binlog_size=100M
#
#开启二进制日志
log-bin=mysql-bin
tmpdir=/data/mysql/tmp
#标识唯一id(必须),一般使用ip最后位
server-id=1
#不同步的数据库,可设置多个
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=mysql
#指定需要同步的数据库(和slave是相互匹配的),可以设置多个
#binlog-do-db=test
#设置binlog的格式
binlog_format=statement
max_binlog_size=500M
sync_binlog=1
expire-logs-days=7
slow_query_log