Mysql讀寫分離
客戶端訪問數(shù)據(jù)的查詢請求和寫請求分別給不同的數(shù)據(jù)庫服務(wù)器處理
為什么要數(shù)據(jù)讀寫分離
減輕單臺服務(wù)器的并發(fā)訪問壓力,提高機器硬件的利用率
處理寫數(shù)據(jù)的服務(wù)器做master,讀數(shù)據(jù)服務(wù)器做slave
配置數(shù)據(jù)讀寫分離(Maxscale 主從同步)
1.部署一主(101)兩從(102,103)
2.在150上安裝maxscale-2.1.2-1.rhel.7.x86_64.rpm
修改配置文件:/etc/maxscale.cnf,添加兩個server
[maxscale]
threads=auto #運行的線程的數(shù)量
[server1] #定義數(shù)據(jù)庫服務(wù)器
type=server
address=10.10.10.101
port=3306
protocol=MySQLBackend #后端數(shù)據(jù)庫
[server2]
type=server
address=10.10.10.102
port=3306
protocol=MySQLBackend
[server3]
type=server
address=10.10.10.103
port=3306
protocol=MySQLBackend
[MySQL Monitor] #定義監(jiān)控的數(shù)據(jù)庫服務(wù)器
type=monitor
module=mysqlmon
servers=server1,server2,server3 #監(jiān)控的數(shù)據(jù)庫列表,不能寫ip
user=scalemon #監(jiān)視數(shù)據(jù)庫服務(wù)器時連接的用戶名scalemon
passwd=123456 #密碼123456
monitor_interval=10000 #監(jiān)視的頻率 單位為秒
[Read-Write Service] #定義讀寫分離服務(wù)
type=service
router=readwritesplit
servers=server1,server2,server3
user=maxscaled #用戶名 驗證連接代理服務(wù)時訪問數(shù)據(jù)庫服務(wù)器的用戶是否存在
passwd=123456
max_slave_connections=100%
[MaxAdmin Service] #定義管理服務(wù)
type=service
router=cli
[Read-Write Listener] #讀寫服務(wù)使用的端口號
type=listener
service=Read-Write Service
protocol=MySQLClient
port=4006
[MaxAdmin Listener] #管理服務(wù)使用的端口號
type=listener
service=MaxAdmin Service
protocol=maxscaled
socket=default
port=4099 #手動添加,不指定時使用的是默認(rèn)端口在啟動服務(wù)以后可以知道默認(rèn)端口是多少
3.根據(jù)配置文件的設(shè)置在兩臺服務(wù)器上添加監(jiān)控用戶和路由用戶
replication slave #監(jiān)控主從同步 replication client #監(jiān)控服務(wù)狀態(tài)
grant replication slave,replication client on *.* to scalemon@"%" identified by "123456"
grant select on mysql.user to maxscaled@"%" identified by "123456"
4.在150上啟動服務(wù)
驗證授權(quán)用戶
啟動服務(wù):maxscale -f /etc/maxscale.cnf
停止服務(wù):killall -9 maxscale
5.測試配置
查看管理信息(150主機自己訪問自己)
maxadmin -uadmin -pmariadb -P4099
list servers
客戶端連接57訪問數(shù)據(jù)
6.測試數(shù)據(jù)讀寫分離
在主數(shù)據(jù)庫上授權(quán)訪問的用戶
客戶端連接中間件服務(wù)器:mysql -h10.10.10.150 -P4006 -uyaya8 -p123456
來源:https://www./content-2-325901.html