標籤:
master1:192.168.128.47
master2:192.168.128.96slave:192.168.128.97 master1與master2互備,master2作為slave的master①,在master1端:修改my.cnfserver-id = 1auto_increment_increment = 2auto_increment_offset = 1#binlog_do_db = sssjpt,sakila,test --可選,用來指定master端的那些db操作記錄binlog#binlog_ignore_db = mysql --可選,用來指定master端的那些db操作不記錄binlog#replicate_do_db = sssjpt,sakila,test --可選,用來指定slave端的SQL線程應用master端傳來的哪些DB binlog#replicate_ignore_db = mysqllog_slave_updates --同步master端的二進位日誌來完成同步時的操作也記錄當前庫二進位日誌,這樣可以將該slave作為另一個slave的master參數解釋:auto_increment_increment = 2auto_increment_offset = 1主要用於master-master端,因為兩台master節點都有可能同時發生寫操作,這樣的話就有可能發生auto_increment 索引值衝突,現在將auto_increment_increment=2,auto_increment_offset=1,在master1端每次執行自增操作時都會增加比當前資料最大值大2的資料,並且從最大值的後面第1個位置開始,每次增加2個數。如,1,3,5,7 。。。將auto_increment_increment=2,auto_increment_offset=2,在master2端每次執行自增操作時都會增加比當前資料最大值大2的資料,並且從最大值的後面第2個位置開始,每次增加2個數,如,2,4,6,8 。。。如果在主從同步中只讓一個master執行寫的話,則沒有比較設定auto_increment_increment,auto_increment_offset參數不過在新版本的mysql裡面,可以通過innodb_autoinc_lock_mode參數來限制 ②,master1:grant replication slave to *.* on [email protected]‘192.168.128.96‘ identified by ‘123456‘;show master status;mysqldump -uroot -p --databases db1 db2 --lock-all-tables > /tmp/dump.sqlscp /tmp/dump.sql [email protected]:/tmpmaster2:mysql -uroot -p < /tmp/dump.sqlchange master to master_host=‘192.168.128.47‘,master_user=‘backup‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=120;start slave; ③,在master2端:修改my.cnfserver-id = 2 auto_increment_increment = 2auto_increment_offset = 2#binlog_do_db = sssjpt,sakila,test#binlog_ignore_db = mysql#replicate_do_db = sssjpt,sakila,test#replicate_ignore_db = mysqllog_slave_updates --同步master端的二進位日誌來完成同步時的操作也記錄當前庫二進位日誌,這樣可以將該slave作為另一個slave的master ④,master2:grant replication slave to *.* on [email protected]‘192.168.128.47‘ identified by ‘123456‘;show master status; master1:change master to master_host=‘192.168.128.96‘,master_user=‘backup‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=120;start slave; ⑤,master1:scp /tmp/dump.sql [email protected]:/tmpslave:修改my.cnfserver-id = 3 #binlog_do_db = sssjpt,sakila,test#binlog_ignore_db = mysql#replicate_do_db = sssjpt,sakila,test#replicate_ignore_db = mysql mysql -uroot -p < /tmp/dump.sqlchange master to master_host=‘192.168.128.97‘,master_user=‘backup‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=120;start slave;
mysql master master slave 環境搭建