概述: mysql 主从是应用比较多的场景, 而三级主从也是如此, 主从复制的原理是,主方要将数据变更记录到自己的log_bin日志中,通过线程传送到从节点,那么,mysql要实现三级主从复制,即实现 1 》 2 》 3 , 那么首先需要1、2上的log_bin存在数据的完全记录 , 3上才能从2中实现完全复制,默认情况下,1中开启log_bin后,日志写入1,不存在问题, 而2上作为1的从节点,log-slave-updates参数就是控制从节点复制数据时是否写入本身log_bin , 来实现3是否可以成功从2复制数据。
#主配置
[client]
default-character-set=utf8
socket=/data/mysql/mysql.sock
[mysql]
default-character-set=utf8
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
character-set-server=utf8
default-storage-engine = InnoDB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
max_connections=10000
slow_query_log = 1
long_query_time = 3
log_queries_not_using_indexes = 1
max_connect_errors = 20
server-id = 1
log-bin=mysql-bin
log_bin_index=master-bin.index
binlog_ignore_db=information_schema
binlog_ignore_db=performance_schema
binlog_ignore_db=sys
sync_binlog=1
binlog_do_db=testdb1
binlog_do_db=testdb2
expire_logs_days=5
log-slave-updates
log_bin_trust_function_creators = 1
symbolic-links=0
query_cache_size=128M
query_cache_type=1
binlog_cache_size = 2M
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#从配置
[client]
default-character-set=utf8
socket=/data/mysql/mysql.sock
[mysql]
default-character-set=utf8
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
character-set-server=utf8
default-storage-engine = InnoDB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
max_connections=10000
slow_query_log = 1
long_query_time = 3
log_queries_not_using_indexes = 1
max_connect_errors = 20
max_allowed_packet = 256M
server-id=4
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
binlog_format = Mixed //ROW
log_slave_updates //log_slave_updates = 1
sync_binlog=1
slave_skip_errors=1062
innodb_flush_log_at_trx_commit = 0
innodb_buffer_pool_size=8G
expire_logs_days=5
log-slave-updates
log_bin_trust_function_creators = 1
symbolic-links=0
query_cache_size=128M
query_cache_type=1
binlog_cache_size = 2M
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
注意:
#gtid
gtid_mode = on
enforce_gtid_consistency = 1
binlog_gtid_simple_recovery = 1
log_slave_updates = 1
主从复制的原理是,主方要将数据变更记录到自己的log_bin日志中,通过线程传送到从节点,那么,mysql要实现三级主从复制,即实现 1 》 2 》 3 , 那么首先需要1、2上的log_bin存在数据的完全记录 , 3上才能从2中实现完全复制,默认情况下,1中开启log_bin后,日志写入1,不存在问题, 而2上作为1的从节点,log-slave-updates参数就是控制从节点复制数据时是否写入本身log_bin , 来实现3是否可以成功从2复制数据。

