[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