socket=/mysql/data/$MySql_Port/mysql.sock #用于本地连接的socket文件目录
pid-file=/mysql/data/$MySql_Port/mysql.pid #进程ID文件的目录 。
character-set-server=utf8 #默认字符集
#------------------------------------
#log setting 日志设置
#------------------------------------
long_query_time=10 #慢查询时间,超过 10 秒则认为是慢查询
slow_query_log=ON #启用慢查询日志
slow_query_log_file=/mysql/log/$MySql_Port/${HostName}-query.log #慢查询日志目录
log_queries_not_using_indexes=1 #记录未使用索引的语句
log_slow_admin_statements=1 #慢查询也记录那些慢的optimize table,analyze table和alter table语句
log-error=/mysql/log/$MySql_Port/${HostName}-error.log #错误日志目录
#------------------------------------
#master modify parameter 主库A复制更改参数
#------------------------------------
server_id=$Server_Id #master和slave server_id 需要不同
#二进制日志参数配置
log_bin=/mysql/log/$MySql_Port/binlog/${HostName}-binlog#binlog目录
log_bin_index=/mysql/log/$MySql_Port/binlog/${HostName}-binlog.index#指定索引文件的位置
binlog_format=row #行模式复制,默认是 row
binlog_rows_query_log_events=on #在 row 模式下,开启该参数,可以将把 sql 语句打印到 binlog 日志里面,方便查看
binlog_cache_size=1M #事务能够使用的最大 binlog 缓存空间 。
max_binlog_size=2048M #binlog 文件最大空间,达到该大小时切分文件
expire_logs_days=7 #设置自动删除 binlog 文件的天数 。
sync_binlog=1 #表示每次事务的 binlog 都会fsync持久化到磁盘,MySQL 5.7.7 之后默认为1,之前的版本默认为0
innodb_flush_log_at_trx_commit=1 #表示每次事务的 redo log 都直接持久化到磁盘,默认值为1
#------------------------------------
#slave parameter主库B参数
#------------------------------------
relay_log=/mysql/log/$MySql_Port/relaylog/${HostName}-relaylog #中继日志目录
relay-log-index=/mysql/log/$MySql_Port/relaylog/${HostName}-relay.index#中继日志索引目录
log_slave_updates=1 #主库B从主库A复制的数据会写入主库B binlog 日志文件里,默认是不写入
read_only=0#主库B读写权限
relay_log_purge=1 #自动清空不再需要中继日志
# 并行复制参数
#主库A上面怎么并行,主库B上面就怎么回放,基于逻辑时钟的概念
#binlog 会记录组提交的信息,从回放的时候就可以知道哪些事务是一组里面的,
#一组里面的就丢到不同线程去回放,不是一组里的就等待,以此来提升并行度
slave-parallel-type=LOGICAL_CLOCK
#多线程复制
slave-parallel-workers=4
#slave 上commit 的顺序保持一致,否则可能会有间隙锁产生
slave-preserve-commit_order=1
master_info_repository=TABLE #默认每接收到10000个事件,写一次master-info,默认是写在文件中的
#修改 relay_log_info_repository 的好处
#1.relay.info 明文存储不安全,把 relay.info 中的信息记录在 table 中相对安全 。
#2.可以避免 relay.info 更新不及时,slave 重启后导致的主从复制出错 。
relay_log_info_repository=TABLE #将回放信息记录在 slave_relay_log_info 表中,默认是记录在 relay-info.log 文件中
relay_log_recovery=1#当slave重启时,将所有 relay log 删除,通过 sql 线程重放的位置点去重新拉日志
#------------------------------------
#Replication Filter 主库B复制过滤参数
推荐阅读
- 被记大过了,一个操作把MySQL主从复制整崩了……
- 大厂高频:讲一下MySQL主从复制
- MySQL面试常见问题解析:掌握这10个问题,事半功倍!
- MySQL如何支撑每秒百万QPS?
- 从MySQL到OBOracle:如何处理自增列?
- MySQL分库分表全攻略:从小白到大神的进阶指南!
- 一次MySQL主从同步异常,扒个底朝天都没排查出来……
- MySQL关联查询时,为什么建议小表驱动大表?这样做有什么好处
- MySQL 驱动中虚引用 GC 耗时优化与源码分析
- Mysql的存储引擎有哪些?