mysql主從複製系列(3)——一主多從搭建

一主多從架構

在主庫讀取請求壓力很是大的場景下, 能夠經過配置一主多從複製架構實現讀寫分離, 把大量對實時性要求不是特別高的讀請求經過負載均衡分佈到多個從庫上, 下降主庫的讀取壓力,在主庫出現異常宕機的狀況下, 能夠把一個從庫切換爲主庫繼續提供服務 (中間切換過程沒法提供服務)。
mysql


先用2臺主機作測試sql

主庫:192.168.5.149:3306vim

從庫1:192.168.5.150:3307安全


1. 配置主機遠程登陸,確保從庫主機能夠登陸到主庫主機

主機配置文件bash

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 複製代碼

bind-address 改 0.0.0.0  或者 註釋掉 (這樣mysql服務就能夠監聽全網的鏈接)服務器


systemctl restart mysql複製代碼


確保要登陸的用戶host爲 %架構

select user, host from mysql.user; 複製代碼

(這步在後面grant replication slave on *.* to 'slave'@'%' identified by 'slave'; 能夠保證)
負載均衡


設置防火牆ide

開放3306端口,服務器須要配置安全組規則,有防火牆須要開放3306
sudo ufw allow 3306  或者  sudo ufw disable


2. 主庫配置

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 複製代碼

port修改(主庫就用3306)post


開啓server-id log_bin


systemctl restart mysql  複製代碼
// 啓用一個用戶 slave,用於從庫登陸到主庫
grant replication slave on *.* to 'slave'@'%' identified by 'slave';複製代碼

// 這裏給 slave用戶賦all privileges 
grant all privileges on *.* to 'slave'@'%' identified by 'slave';複製代碼

flush privileges;複製代碼

show master status;   // 查看master狀態複製代碼


主庫配置好了之後就先不要改動了,改動會影響狀態


3. 從庫配置

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 複製代碼

修改port


把server-id改爲與主機不一樣的,log_bin打開



systemctl restart mysql 複製代碼

把slave主機的master_host切換到192.168.5.149

change master to master_host='192.168.5.149', master_port=3306, master_user='slave', master_password='slave', master_log_file='mysql-bin.000001', master_log_pos=1023;複製代碼

start slave;      // stop slave; 可中止進行slave模式複製代碼

show slave status\G複製代碼


(看到兩個Yes了不,上面的slave_io_running破玩意總是NO,翻到下面報錯The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.能夠參考這篇,什麼,不是報這個錯,本身搜過別的!!!!)



4. 測試一下主從複製

主機給個命令 (你能感覺到個人憤怒┗|`O′|┛ 嗷~~)



從機  成功啦~

相關文章
相關標籤/搜索