MyCat学习:使用MySQL搭建主从复制(双主双从模式)
首先,上一篇我們建立了一主一叢模式的MySQL讀寫分離 點擊這里 那么接下來,我們搭建雙主雙從模式的讀寫分離,并且使用MyCat登錄訪問
原理:master1,master2,slave1,slave2 —> master1 和 slave1主從復制,master2 和 slave2主從復制,同時 master2 做為master1的從機,進行互備主從
當然,如果你之前沒有搭建過主從復制,下面這兩步驟可以不需要做
- 首先需要清除當前之前設置的主從模式,刪除testdb數據庫
- stop slave; reset master;(可以主機從機都執行)
一、master1配置文件:
二、master2配置文件:
server-id=3 log-bin=mysql-bin binlog-ignore-db=mysql binlog-do-db=testdb binlog_format=STATEMENT log-slave-updates auto-increment-increment=2 auto-increment-offset=2 # 注意起始值不一樣三、slave1配置文件:
server-id=2 relay-log=mysql-relay四、slave1配置文件:
server-id=4 relay-log=mysql-relay五、雙主機,雙從機重啟 mysql 服務
六、主機從機都必須關閉防火墻
七、在兩臺主機上建立賬戶并授權 slave
八、查看 master1 的主機狀態,記錄下binlog日志文件名和position點的值,在slave1上執行以下語句:
change master to master_host='192.168.0.12',master_port=3307,master_user='slave',master_password='qkm19981013',master_log_file='mysql-bin.000001',master_log_pos=156;九、查看 master2 的主機狀態,記錄下binlog日志文件名和position點的值,在salve2上執行以下語句:
change master to master_host='192.168.0.12',master_port=3309,master_user='slave',master_password='qkm19981013',master_log_file='mysql-bin.000001',master_log_pos=156;十、在slave1和slave2上開啟主從復制
start slave; show slave status\G;十一、最后一步,搭建 master1和master2的互備主從,即master1復制master2,master2復制,master1:
master1設置master2為主機: change master to master_host='192.168.0.12',master_port=3309,master_user='slave',master_password='qkm19981013',master_log_file='mysql-bin.000001',master_log_pos=156; start slave; show slave status\G; master2設置master1為主機: change master to master_host='192.168.0.12',master_port=3307,master_user='slave',master_password='qkm19981013',master_log_file='mysql-bin.000001',master_log_pos=156; start slave; show slave status\G;最后的效果就是,我們在 master1上面建立 testdb 數據庫之后,其他三個MySQL都同步建立 testdb 數據庫了,接著再建立 mytbl 表,其他三個也都建立,往表中插入 insert into mytbl values(1, @@hostname); 之后出現了四個數據庫的數據不一致,@@hostname是系統變量,每個系統不一樣,所以不同,這也驗證了bin-log默認的格式是復制 SQL 語句這一說法。
需要注意的一點
mysql 8.0 默認使用 caching_sha2_password 身份驗證機制 —— 從原來的 mysql_native_password 更改為 caching_sha2_password。
從 5.7 升級 8.0 版本的不會改變現有用戶的身份驗證方法,但新用戶會默認使用新的 caching_sha2_password 。
所以在 slave 連接 master的時候,show slave status\G; 可能會出現:authentication plugin 'caching_sha2_password’的異常,這是因為MySQL8.0之后改變了密碼驗證器,我們只需要把在主機建立的授權用戶的密碼驗證器改成mysql_native_password就好了,語句如下:
MyCat登錄訪問
balance 設置成 1,再添加上 寫主機信息 <dataHost name="host1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="192.168.0.12:3307" user="root" password="qkm19981013"><readHost host="hostS1" url="192.168.0.12:3308" user="root" password="qkm19981013"/></writeHost><writeHost host="hostM2" url="192.168.0.12:3309" user="root" password="qkm19981013"><readHost host="hostS2" url="192.168.0.12:3310" user="root" password="qkm19981013"/></writeHost></dataHost>總結
以上是生活随笔為你收集整理的MyCat学习:使用MySQL搭建主从复制(双主双从模式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyCat学习:使用MySQL搭建主从复
- 下一篇: Window平台 mysql8.0下载安