您好,登錄后才能下訂單哦!
實現結構:
前提條件,這是全新的安裝mysql服務器,已經在運行的mysql需要先做備件,并還原到另外的機子上。
master A:192.168.168.128
master B:192.168.168.129
slave 192.168.168.130
在三臺機子上分別安裝mysql
[root@yaho ~]# yum install -y mysql mysql-server mysql-dev
修改master A和master B還有slave的配置文件。
[root@yaho ~]#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 #步長
slave-skip-errors=1007,1008 #跳過無法創建數據庫錯誤和無法刪除數據庫錯誤,如果所有mysql的數據庫都一樣,可以不加
# slave-skip-errors=all #跳過所有錯誤,其實這個參數挺危險的,很容易造成幾臺mysql數據不一致
log-slave-updates #寫入從master復制操作的記錄到本地bin-log日志,以實現slave的完整同步(備份)
master B: 在[mysqld]內添加(修改)
server-id = 129
log-bin = mysql-bin
sync-binlog = 1
auto_increment_offset = 2 #起始值
auto_increment_increment = 2 #步長
slave-skip-errors=1007,1008 #跳過無法創建數據庫錯誤和無法刪除數據庫錯誤,如果所有mysql的數據庫都一樣,可以不加
# slave-skip-errors=all #跳過所有錯誤,其實這個參數挺危險的,很容易造成幾臺mysql數據不一致
log-slave-updates #寫入從master復制操作的記錄到本地bin-log日志,以實現slave的完整同步(備份)
slave: 在[mysqld]內添加(修改)
server-id = 130
slave-skip-errors=1007,1008 #跳過無法創建數據庫錯誤和無法刪除數據庫錯誤,如果所有mysql的數據庫都一樣,可以不加
# slave-skip-errors=all #跳過所有錯誤,其實這個參數挺危險的,很容易造成幾臺mysql數據不一致
log-slave-updates #寫入從master復制操作的記錄到本地bin-log日志,以實現slave的完整同步(備份)
3.分別啟動3臺master的mysql,建立同步用戶,并給IP授權,允許遠程訪問。
[root@yaho ~]#service mysqld start
master A:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.2168.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 這行,當主從建立起來后再去掉注釋。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。