1. 程式人生 > 其它 >mysql讀寫分離_MySQL使用Mycat完成高可用和讀寫分離

mysql讀寫分離_MySQL使用Mycat完成高可用和讀寫分離

技術標籤:mysql讀寫分離

大家好,我是anyux。本文介紹MySQL使用Mycat完成高可用和讀寫分離

Mycat高可用和讀寫分離

節點關係說明

讀寫主機引數server_id備註writeHosturl="192.168.255.117:3307"7寫操作(主寫節點)readHosturl="192.168.255.117:3309"9讀操作writeHosturl="192.168.255.118:3307"1187預設讀操作(stand by writeHost)readHosturl="192.168.255.118:3309"​1189讀操作

當主寫節點宕機後,stand by writeHost節點隨機準備替換為主寫節點

<?xml version="1.0"?>     select user()                  

重啟mycat

mycatrestart

檢查mycat

mysql-uroot-p123456-h127.0.0.1-P8066-e"select @@server_idGselect @@server_idGselect @@server_idG;begin;select @@server_idG;commit;begin;select @@server_idG;commit;"
e7668178ca359de339ee96c992eeb591.png

關閉主寫節點

systemctlstopmysqld3307

檢查資料庫狀態

mysql-uroot-p123456-h127.0.0.1-P8066-e"select @@server_idGselect @@server_idGselect @@server_idG;begin;select @@server_idG;commit;begin;select @@server_idG;commit;"

可以看到,寫操作切換到server_id:1187,讀操作只有server_id:1189。說明舊主寫節點宕機後,其對應的主從複製關係已停止,切換到另一個主從複製關係

0269a3d03157ef0b47416faaa0548b61.png

啟動舊寫資料庫節點,會自動加入到Mycat叢集中

systemctl start mysqld3307

檢查資料庫狀態

mysql-uroot-p123456-h127.0.0.1-P8066-e"select @@server_idGselect @@server_idGselect @@server_idG;begin;select @@server_idG;commit;begin;select @@server_idG;commit;"

恢復後,舊的寫節點變成stand by writeHost

25fd66baf2aafaabf47e06985b5c4652.png