mysql主主同步設置mysql
主主同步設置是同等的地位,因此如下操做在兩臺機器上都須要進行並且操做是相同的。sql
服務器數據庫
服務器代號 | IP | hostname |
---|---|---|
A | 192.168.70.128 | Debian1 |
B | 192.168.70.130 | Debian2 |
建立同步帳號
分別在兩臺機器的mysql裏面添加用戶。若是須要制定特定的ip,只需將「%」替換成對應ip便可。服務器
mysql> grant replication slave on *.* to 'mysql'@'%' identified by "你的密碼"; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)添加以後,用該帳號信息,在A上嘗試訪問B的mysql,同時也在B上嘗試訪問A的mysql。
修改配置文件
分別中止mysql服務,而後修改兩臺機器的my.cnf配置文件,開啓bin-log功能,配置server-id。
A:ide
vi /etc/mysql/my.cnf [myqld] server-id = 128 log_bin =/your_path/ slave-net-timeout = 60 #默認3600秒,縮短期爲了防止雙YES的延遲假象 #binlog-do-db=osyunweidb #須要同步的數據庫名,若是有多個數據庫,可重複此參數,每一個數據庫一行 #binlog-ignore-db=mysql #不一樣步mysql系統數據庫
B:測試
vi /etc/mysql/my.cnf [myqld] server_id = 130 log_bin =/your_path/ slave-net-timeout = 60 #salve-net-timeout默認是3600秒,縮短期是爲了防止雙YES的假象 #binlog-do-db=osyunweidb #須要同步的數據庫名,若是有多個數據庫,可重複此參數,每一個數據庫一行 #binlog-ignore-db=mysql #不一樣步mysql系統數據庫
重啓mysql服務
分別重啓mysql服務code
查看做爲master的狀態
爲了防止在查看狀態的時候數據庫有數據變動,因此要先加上鎖。
A:
mysql> flush tables with read lock; mysql> show master status \G *************************** 1. row *************************** File: mysql-bin.000003 Position: 107 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.00 sec)
server
B:ip
mysql> flush tables with read lock; mysql> show master status \G *************************** 1. row *************************** File: mysql-bin.000002 Position: 433 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.00 sec)
A(192.168.70.128): change master to master_host='192.168.70.130', master_port=3306, master_user='mysql', master_password='lwj', master_log_file='mysql-bin.000002', master_log_pos=433; B(192.168.70.130): change master to master_host='192.168.70.128', master_port=3306, master_user='mysql', master_password='lwj', master_log_file='mysql-bin.000003', master_log_pos=107;
mysql>unlock tables; mysql>start slave;
show slave status \G
Slave_IO_Running: Yes Slave_SQL_Running: Yes