MySQL配置文件相关参数说明

本文详细介绍了MySQL主从复制的配置,包括master和slave的配置参数,如server-id、log-bin、binlog_format等,以及如何设置数据库同步、错误处理和日志管理,确保数据一致性与高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[mysqld]
#设置mysql的安装目录
basedir =/usr/local/mysql
#设置mysql数据库的数据存放目录
datadir = /usr/local/mysql/data
#设置端口
port = 3306
socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /usr/local/mysql/data/mysqld.log
pid-file = /usr/local/mysql/data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

#===============================================master(从库配置)=========================================================#

# 节点ID,确保唯一
server-id = 885    

#开启mysql的binlog日志功能
log-bin = mysql-bin     

#控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
sync_binlog = 1  

#binlog日志格式,mysql默认采用statement,建议使用mixed       
binlog_format = mixed   

#binlog过期清理时间
expire_logs_days = 30 

#binlog每个日志文件大小                          
max_binlog_size = 1000m  

#binlog缓存大小                  
binlog_cache_size = 4m 

#最大binlog缓存大                       
max_binlog_cache_size= 512m 

#要同步的数据库
binlog-do-db = efb          

#不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行             
binlog-ignore-db=mysql
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys 

# 自增值的偏移量
auto-increment-offset = 1  

# 自增值的自增量   
auto-increment-increment = 1  

#跳过从库错误
slave-skip-errors = all 

#===============================================slave(从库配置)=========================================================#

server-id = 890                #必须唯一
log_bin = mysql-bin         #这些路径相对于datadir,可以全路径方式也可以不用路径,开启及设置二进制日志文件名称
binlog_format = MIXED
sync_binlog = 1
expire_logs_days =7            #二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。
log_slave_updates = 1         #【关键点】从主服务器接收到的更新同时要写入二进制日志

#binlog_cache_size = 128m
#max_binlog_cache_size = 512m
#max_binlog_size = 256M

binlog-do-db = efb         #要同步的数据库 

binlog-ignore-db = mysql     #不需要同步的数据库 
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys

master_info_repository=TABLE
relay_log_info_repository=TABLE
read_only=1  #读写分离,配置从库只读,避免从库写操作(只针对普通用户有效,对超级管理员管用无效)
super_read_only=1 
#mysql5.7增加了一个新的参数super_read_only,该参数使得超级管理员也无法进行写操作,不建议使用,如果master服务器宕机了,salve切换成master数据库后反而无法写数据。


#===========================================主从配置MASTER-SLAVE关键配置参数说明===========================================#
log-bin:    
搭建主从复制,必须开启二进制日志

server-id:    
mysql在同一组主从结构中的唯一标识,各个服务器必须不同

server-uuid:    
从mysql5.6开始有了该参数,在数据库启动过程中自动产生,每个机器都不一样, uuid存放在auto.cnf文件中

read only:    
设置从库只读状态,避免在从库上写操作,但该指令对超级管理员是无效的,mysql5.7增加了一个新的参数super_read_only,该参数使得超级管理员也无法进行写操作。

binlog_format:    
二进制日志的格式,这里必须是row模式

log_slave_updates:    
将从主库获得的变更信息在重新写入从库的binlog日志中。

log_error_action:    
该参数用来控制当不能写binlog文件时候,mysql将会怎么样,该参数是mysql5.7之后新增的。有abort_server 和 ignore_error, abor_server代表当mysql在写binlog时候遇到磁盘慢或文件系统不可用时退出;而ignore_error 则表示遇到binlog无法写入时候,mysql会在错误日志中记录错误,并且还会强制关闭binlog功能,这样会影响从库从主库上获取日志的功能,导致主从库数据不一致,mysql5.7之后默认使用abort_server

binlog-do-db:    
使用该参数可选择性复制数据库(主库上设置),如binlog-do-db=ceshi,则意味着只同步ceshi库,其他库是不进行复制同步的。

gtid_mode:    
决定gtid模式是否开启,如果使用gtid复制模式,则必须 gtid_mode=on

enforce-gtid-consistency:    
使用gtid模式时候,要开启该参数,保证gtid的一致行enforce-gtid-consistency=on

gtid_next:    
该参数是session级别的变量,下一个gtid。默认值是automatic

gtid_purged:    
丢弃的gtid

relay_log:    
记录从主库的I/O dump thread过来binlog内容

replicate_do_table:        
只复制指定的表,在从库上使用

replicate_ignore_table:        
需要在复制中忽略的表,在从库上设置使用

replicate_ignore_db:    
忽略复制的库,从库上设置使用

replicate_do_db:    
只进行复制的库,从库上设置使用

replicate_wild_do_table:    
使用通配符指定需要复制的表,如zs库下tt开头的表,则为--replicate_wild_do_table=zz.tt%

replicate_wild_ignore_table:    
使用通配符指定需要忽略的表

master_info_repository:        
把master.info(主从状态,配置信息)记录下来,默认记录到file里面,建议使用表记录 master_info_repository=table

relay_log_recovery:        
为了让从库是crash safe的必须要设置relay_log_recovery=1,该参数的的含义是:当从库发生崩溃或重启时,它会把那些为做完的中继日志删除,并向主库重新获取日志,再次产生中继日志的恢复,建议在从库上开启relay_log_recovery参数,默认是关闭的

relay_log_purge:    
清除已经执行过的relay log,建议从库上开启

slave_net_timeout:    
该参数是设置多少秒没从主库上获得binlog之后,从库认为是超时,从库 I/O thread会重新连接主库,该值从mysql5.7.7开始默认值是60s

slave_parallel_type:    
该参数从msyql5.7.2引入的,有两个值,一个是database,另一个是logical_clock,在mysql5.7之后引入了基于组提交的并行复制,通过设置参数 slave_parallel_workers>0 并且slave_parallel_type='LOGICAL_CLOCK'实现

slave_parallel_workers:
设置多个进程来并发的执行relay log中主库提交的事务,最大值为1024


 

[mysqld]
#设置mysql的安装目录
basedir =/usr/local/mysql
#设置mysql数据库的数据存放目录
datadir = /usr/local/mysql/data
#设置端口
port = 3306
socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /usr/local/mysql/data/mysqld.log
pid-file = /usr/local/mysql/data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION



#===============================================master(从库配置)=========================================================#

# 节点ID,确保唯一
server-id = 885    

#开启mysql的binlog日志功能
log-bin = mysql-bin     

#控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
sync_binlog = 1  

#binlog日志格式,mysql默认采用statement,建议使用mixed       
binlog_format = mixed   

#binlog过期清理时间
expire_logs_days = 30 

#binlog每个日志文件大小                          
max_binlog_size = 1000m  

#binlog缓存大小                  
binlog_cache_size = 4m 

#最大binlog缓存大                       
max_binlog_cache_size= 512m 

#要同步的数据库
binlog-do-db = efb          

#不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行             
binlog-ignore-db=mysql
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys 

# 自增值的偏移量
auto-increment-offset = 1  

# 自增值的自增量   
auto-increment-increment = 1  

#跳过从库错误
slave-skip-errors = all 



#===============================================slave(从库配置)=========================================================#

server-id = 890                #必须唯一
log_bin = mysql-bin         #这些路径相对于datadir,可以全路径方式也可以不用路径,开启及设置二进制日志文件名称
binlog_format = MIXED
sync_binlog = 1
expire_logs_days =7            #二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。
log_slave_updates = 1         #【关键点】从主服务器接收到的更新同时要写入二进制日志

#binlog_cache_size = 128m
#max_binlog_cache_size = 512m
#max_binlog_size = 256M

binlog-do-db = efb         #要同步的数据库 

binlog-ignore-db = mysql     #不需要同步的数据库 
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys

master_info_repository=TABLE
relay_log_info_repository=TABLE
read_only=1  #读写分离,配置从库只读,避免从库写操作(只针对普通用户有效,对超级管理员管用无效)
super_read_only=1 
#mysql5.7增加了一个新的参数super_read_only,该参数使得超级管理员也无法进行写操作,不建议使用,如果master服务器宕机了,salve切换成master数据库后反而无法写数据。


#===========================================主从配置MASTER-SLAVE关键配置参数说明===========================================#
log-bin:	
搭建主从复制,必须开启二进制日志

server-id:	
mysql在同一组主从结构中的唯一标识,各个服务器必须不同

server-uuid:	
从mysql5.6开始有了该参数,在数据库启动过程中自动产生,每个机器都不一样, uuid存放在auto.cnf文件中

read only:	
设置从库只读状态,避免在从库上写操作,但该指令对超级管理员是无效的,mysql5.7增加了一个新的参数super_read_only,该参数使得超级管理员也无法进行写操作。

binlog_format:	
二进制日志的格式,这里必须是row模式

log_slave_updates:	
将从主库获得的变更信息在重新写入从库的binlog日志中。

log_error_action:	
该参数用来控制当不能写binlog文件时候,mysql将会怎么样,该参数是mysql5.7之后新增的。有abort_server 和 ignore_error, abor_server代表当mysql在写binlog时候遇到磁盘慢或文件系统不可用时退出;而ignore_error 则表示遇到binlog无法写入时候,mysql会在错误日志中记录错误,并且还会强制关闭binlog功能,这样会影响从库从主库上获取日志的功能,导致主从库数据不一致,mysql5.7之后默认使用abort_server

binlog-do-db:	
使用该参数可选择性复制数据库(主库上设置),如binlog-do-db=ceshi,则意味着只同步ceshi库,其他库是不进行复制同步的。

gtid_mode:	
决定gtid模式是否开启,如果使用gtid复制模式,则必须 gtid_mode=on

enforce-gtid-consistency:	
使用gtid模式时候,要开启该参数,保证gtid的一致行enforce-gtid-consistency=on

gtid_next:	
该参数是session级别的变量,下一个gtid。默认值是automatic

gtid_purged:	
丢弃的gtid

relay_log:	
记录从主库的I/O dump thread过来binlog内容

replicate_do_table:		
只复制指定的表,在从库上使用

replicate_ignore_table:		
需要在复制中忽略的表,在从库上设置使用

replicate_ignore_db:	
忽略复制的库,从库上设置使用

replicate_do_db:	
只进行复制的库,从库上设置使用

replicate_wild_do_table:	
使用通配符指定需要复制的表,如zs库下tt开头的表,则为--replicate_wild_do_table=zz.tt%

replicate_wild_ignore_table:	
使用通配符指定需要忽略的表

master_info_repository:		
把master.info(主从状态,配置信息)记录下来,默认记录到file里面,建议使用表记录 master_info_repository=table

relay_log_recovery:		
为了让从库是crash safe的必须要设置relay_log_recovery=1,该参数的的含义是:当从库发生崩溃或重启时,它会把那些为做完的中继日志删除,并向主库重新获取日志,再次产生中继日志的恢复,建议在从库上开启relay_log_recovery参数,默认是关闭的

relay_log_purge:	
清除已经执行过的relay log,建议从库上开启

slave_net_timeout:	
该参数是设置多少秒没从主库上获得binlog之后,从库认为是超时,从库 I/O thread会重新连接主库,该值从mysql5.7.7开始默认值是60s

slave_parallel_type:	
该参数从msyql5.7.2引入的,有两个值,一个是database,另一个是logical_clock,在mysql5.7之后引入了基于组提交的并行复制,通过设置参数 slave_parallel_workers>0 并且slave_parallel_type='LOGICAL_CLOCK'实现

slave_parallel_workers:
设置多个进程来并发的执行relay log中主库提交的事务,最大值为1024


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值