標籤:mysql
實現結構: 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/88/EC/wKiom1gAfT3B_dq_AAATIqhLvko501.png" title="QQ圖片20161014143709.png" alt="wKiom1gAfT3B_dq_AAATIqhLvko501.png" />
前提條件,這是全新的安裝mysql伺服器,已經在啟動並執行mysql需要先做備件,並還原到另外的機子上。
master A:192.168.168.128
master B:192.168.168.129
slave 192.168.168.130
在三台機子上分別安裝mysql
[[email protected] ~]# yum install -y mysql mysql-server mysql-dev
修改master A和master B還有slave的設定檔。
[[email protected] ~]#vim /etc/my.cnf
master A: 在[mysqld]內添加(修改)
server-id = 128
log-bin = mysql-bin
sync-binlog = 1
auto_increment_offset = 1
auto_increment_increment = 2
log-slave-updates master B: 在[mysqld]內添加(修改)
server-id = 129
log-bin = mysql-bin
sync-binlog = 1
auto_increment_offset = 2
auto_increment_increment = 2
log-slave-updates
slave: 在[mysqld]內添加(修改)
server-id = 129
3.分別啟動3台master的mysql,建立同步處理的使用者,並給IP授權,允許遠端存取。
[[email protected] ~]#service mysqld start
master A:
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.168.129‘ identified by ‘123456‘; #給master B 授權
master B:
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.168.128‘ identified by ‘123456‘; #給master A授權
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.168.130‘ identified by ‘123456‘; #給slave授權
4.查看master A 和master 的maste 狀態資訊:
mysql>show master status;
+------------------+----------+
| File | Position |
+------------------+----------+
| mysql-bin.000001 | 106 |
+------------------+----------+
5.串連master,實現主-主-從
master A:
mysql>change master to master_host=‘192.168.168.129‘,master_user=‘repl‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=106;
master B:
mysql>change master to master_host=‘192.168.168.128‘,master_user=‘repl‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=106;
slave:
mysql>change master to master_host=‘192.168.168.129‘,master_user=‘repl‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=106;
6.分別在三台機子上啟動slave功能:
mysql>start slave;
mysql>show slave status\G;
如果下面兩項都為YES,意味著成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
測試--略:
只需要在隨便在哪個master建立一個資料庫,然後show一下,如果另外兩個mysql都有這個這人資料庫,則意味成功。
注意:如果mysqld啟動不起來,可以先注釋 log-slave-updates 這行,當主從建立起來後再去掉注釋。
mysql master-master-slave實驗