本文共 3039 字,大约阅读时间需要 10 分钟。
[mysqld] server_id=121 #唯一 binlog_format=row #建议添加 log_bin=/data/logbin/mariadb-bin #建议指定二进制日志路径,防止库与日志同时损坏,注意目录权限 innodb_file_per_table #建议表结构与数据库分开 skip_name_resolve = on #禁止主机名解析 auto_increment_offset=1 #起始位置,主主复制(主节点1)使用 auto_increment_increment=2 #步进值,主主复制(主节点1)使用 auto_increment_offset=2 #起始位置,主主复制(主节点2)使用 auto_increment_increment=2 #步进值,主主复制(主节点2)使用 sync_binlog=0 #每次写立即同步二进制日志到磁盘,默认为1,关闭后,提升性能 如果用到的为InnoDB存储引擎: innodb_flush_log_at_trx_commit=2 #每次事务提交立即同步日志写磁盘(默认为1,建议改成2) sync_master_info=# #次事件后master.info同步到磁盘(关系不大) rpl_semi_sync_master_enabled=1; #启动半同步复制功能 rpl_semi_sync_master_timeout = 1000;超时长为1s 加密通讯相关: ssl-ca=/etc/my.cnf.d/ssl/cacert.pem #指定CA自签名证书路径 ssl-cert=/etc/my.cnf.d/ssl/master.crt #指定master节点证书路径 ssl-key=/etc/my.cnf.d/ssl/master.key #指定master节点私钥路径
[mysqld] server_id=47 #唯一 binlog_format=row #建议添加 log_bin=/data/logbin/mariadb-bin #建议指定二进制日志路径,防止库与日志同时损坏,注意目录权限 innodb_file_per_table #建议表结构与数据库分开 skip_name_resolve = on #禁止主机名解析 log_slave_updates #中间节点必须增加,否则主节点同步过来的二进制日志不写入二进制日志
[mysqld] server_id=120 #唯一 read_only #建议添加,防止写操作 innodb_file_per_table #建议表结构与数据库分开 skip_name_resolve = on #禁止主机名解析 skip_slave_start=ON #不自动启动slave(默认为off,即重启时会自动启动从节点的2个线程) sync_relay_log=# ##次写后同步relay log到磁盘(默认为0) sync_relay_log_info=# #次事务后同步relay-log.info到磁盘(默认为0) 复制过滤器相关: rpl_semi_sync_master_enabled=1; #启动半同步复制功能 replicate_do_db= 指定复制库的白名单 replicate_ignore_db= 指定复制库黑名单 replicate_do_table= 指定复制表的白名单 replicate_ignore_table= 指定复制表的黑名单 replicate_wild_do_table= foo%.bar% 支持通配符 加密通讯相关: ssl-ca=/etc/my.cnf.d/ssl/cacert.pem #指定CA自签名证书路径 ssl-cert=/etc/my.cnf.d/ssl/slave.crt #指定slave节点证书路径 ssl-key=/etc/my.cnf.d/ssl/ slave.key #指定slave节点私钥路径
mysql>set global sql_slave_skip_counter = #; #从服务器忽略几个主服务器的复制事件 mysql> FLUSH TABLES WITH READ LOCK; #阻止所有用户, 包括主服务器复制的更新,不要使用 mysql>reset slave; 在从服务器清除master.info,relay-log.info, relay log,开始新的relay log ,注意:需要先stop slave; mysql>reset slave all; 清除所有从服务器上设置的主服务器同步信息如:PORT, HOST, USER和 PASSWORD 等。 grant replication slave on *.* to repluser@'192.168.36.%' identified by '123456'; #创建复制用户 CHANGE MASTER TO MASTER_HOST='192.168.36.121', MASTER_USER='repluser', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mariadb-bin.000014', MASTER_LOG_POS=245; MASTER_SSL=1; #启用加密用户(使用加密通讯时需要添加此内容) mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; #主节点安装半同步插件 INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; #从节点安装半同步插件 创建必须使用加密通讯的帐户 grant replication slave on *.* to repluser2@'192.168.36.%' identified by '123456' require ssl;
转载于:https://blog.51cto.com/13560168/2392414