mysql> stop slave; //停止slave
mysql>change master to master_host='192.168.187.129', master_user='slave', master_password='1234', master_log_file='mysql-bin.000001', master_log_pos=107; //修改當前的Master的值,因為是互為備份,所以Master2(192.168.187.132)的master為 Master2(192.168.187.129),Master1設置復制的用戶名為slave,密碼是1234,上面通過 show master status我們得知,log_file是mysql-bin.000001,postion是107。
mysql>start slave; //開始salve,開始同步
mysql>show slave status; //檢測slave狀態,如果Slave_IO_Running: Yes Slave_SQL_Running: Yes Seconds_Behind_Master: 0就OK了
</td>
</tr>
</tbody>
</table>
c.測試情況:
Step1:建一個測試表Test,兩個字段,id與name字段,id字段為自增,兩個服務器上面都是同樣的結構,如下圖:
Step2:我在Master1(192.168.187.129)表上執行一個insert語句,并進行查詢,如下圖:
Step3:在Master2(192.168.187.132)中查詢,可以發現數據已經同步過來了,如下圖:
3KeepAlived安裝配置
3.1 KeepAlived的安裝方法
可參照“高可用的負載均衡配置方法(Haproxy+KeepAlived)”5.1 中KeepAlived的安裝方法
3.2將keepalived加入服務
可參照“高可用的負載均衡配置方法(Haproxy+KeepAlived)”5.2 中將keepalived加入服務
3.3 KeepAlived的配置
安裝好以后,對其進行配置如下:
有兩臺機器(MASTER1)所在的192.168.187.129與(Master2)192.168.187.132,用(VIP)192.168.187.61做虛擬IP。
在兩臺服各器中的/etc/keepalived文件夾中的keepalived.conf下進行配置:
Master1的設置
192.168.187.129
global_defs {
router_id Mysql_HA #當前節點名
}
vrrp_instance VI_1{
state BACKUP #兩臺配置節點均為BACKUP
interface eth0 #綁定虛擬IP的網絡接口
virtual_router_id 51 #VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬于同一VRRP組
priority 100 #節點的優先級,另一臺優先級改低一點
acvert_int 1 #組播信息發送間隔,兩個節點設置必須一樣
nopreempt #不搶占,只在優先級高的機器上設置即可,優先級低的機器不設置
authentication{ #設置驗證信息,兩個節點必須一致
auth_type PASS
auth_pass 1111
}
Virtual_ipaddress{ #指定虛擬IP,兩個節點設置必須一樣
192.168.187.61
}
}
virtual_server 192.168.187.61 3306 { #linux虛擬服務器(LVS)配置
delay_loop 2 #每個2秒檢查一次real_server狀態
lb_algo wrr #LVS調度算法,rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR #LVS集群模式 ,NAT|DR|TUN
persistence_timeout 60 #會話保持時間
protocol TCP #使用的協議是TCP還是UDP
real_server 192.168.187.129 3306 {
weight 3 #權重
notify_down /usr/local/bin/mysql.sh #檢測到服務down后執行的腳本
TCP_CHECK {
connect_timeout 10 #連接超時時間
nb_get_retry 3 #重連次數
delay_before_retry 3 #重連間隔時間
connect_port 3306 #健康檢查端口
}
}
Master2的設置
192.168.187.132
global_defs {
router_id Mysql_HA #當前節點名
}
vrrp_instance VI_1{
state BACKUP #兩臺配置節點均為BACKUP
interface eth0 #綁定虛擬IP的網絡接口
virtual_router_id 51 #VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬于同一VRRP組
priority 90 #節點的優先級,另一臺優先級改低一點
acvert_int 1 #組播信息發送間隔,兩個節點設置必須一樣
authentication{ #設置驗證信息,兩個節點必須一致
auth_type PASS
auth_pass 1111
}
Virtual_ipaddress{ #指定虛擬IP,兩個節點設置必須一樣
192.168.187.61
}
}
virtual_server 192.168.187.61 3306 { #linux虛擬服務器(LVS)配置
delay_loop 2 #每個2秒檢查一次real_server狀態
lb_algo wrr #LVS調度算法,rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR #LVS集群模式 ,NAT|DR|TUN
persistence_timeout 60 #會話保持時間
protocol TCP #使用的協議是TCP還是UDP
real_server 192.168.187.132 3306 {
weight 3 #權重
notify_down /usr/local/bin/mysql.sh #檢測到服務down后執行的腳本
TCP_CHECK {
connect_timeout 10 #連接超時時間
nb_get_retry 3 #重連次數
delay_before_retry 3 #重連間隔時間
connect_port 3306 #健康檢查端口
}
}
腳本/usr/local/bin/mysql.sh
#vi /usr/local/bin/mysql.sh
#!/bin/sh
killall keepalived
</td>
</tr>
</tbody>
</table>
3.4 KeepAlived測試
可參照“高可用的負載均衡配置方法(Haproxy+KeepAlived)”5.4 中KeepAlived測試
4.Mysql測試
Step1:打開三個服務器進行查看,剛開始三個都為空


Step2:在VIP(192.168.187.61)服務器中插入一條數據


Step3:再查看三個服務器中的數據都已經同步過來了


當關掉做為主機的192.168.187.129做為宕機處理,同樣也不會出問題,虛擬IP由192.168.187.129漂移
到192.168.187.132上面。
5.安裝時出現的問題及處理方法
NO1: Slave將無法鏈接到 Master情況
錯誤:Slave將無法鏈接到 Master
原因:bind-address默認是127.0.0.1你必須更改它
解決辦法:修改my.cnf,加上如下圖紅框所示的配置!

NO2: mysql error 1129 錯誤
錯誤:mysql 1129錯誤!如下圖:

原因:是因為mysql將ip連接阻塞了。
解決辦法:登錄到mysql數據庫服務器端,使用命令:
| |