您好,登錄后才能下訂單哦!
一、前言:讀寫分離的基本原理
mysql的讀寫分離的基本原理是:讓master(主數據庫)來響應事務性操作,
讓slave(從數據庫)來響應select非事務性操作,
然后再采用主從復制來把master上的事務性操作同步到slave數據庫中。實現簡單的負載均衡。
二、前期準備工作:
1、準備兩臺服務器,我這里準備的是192.168.4.122(主),192.168.4.123(從)
另外準備一臺服務器安裝中間件服務器(192.168.4.125)
2、首先把兩臺服務器做好主從同步。
3、準備讀寫分離的軟件:maxscale-2.1.2-1(中間件)
三、maxscale安裝和配置(4.125)
1、安裝:rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm
2、修改配置文件:vim /etc/maxscale.cnf
54-60行注釋掉,87-91注釋掉
10 threads=auto
18 [server1]
19 type=server
20 address=192.168.4.122
21 port=3306
22 protocol=MySQLBackend
23 [server2]
24 type=server
25 address=192.168.4.123
26 port=3306
27 protocol=MySQLBackend
35 [MySQL Monitor] //監視數據庫的配置
36 type=monitor
37 module=mysqlmon
38 servers=server1, server2
39 user=scalemon //監控
40 passwd=123456
41 monitor_interval=10000
63 [Read-Write Service] //配置查詢讀寫權限的帳號
64 type=service
65 router=readwritesplit
66 servers=server1, server2
67 user=maxscale //接收客戶端連接請求時,連接的用戶名和密碼在數據庫服務上是否存在
68 passwd=123456
69 max_slave_connections=100%
104 port=4010
3、在主庫(4.122)上添加上面需要的兩個授權用戶
grant replication slave,replication client on *.* to scalemon@'%' identified by "123456";
grant select on mysql.* to maxscale@'%' identified by "123456";
4、啟動服務:maxscale -f /etc/maxscale.cnf
停止服務:ps -C maxscale(查進程) kill -9 13109(殺進程)
查看服務是否啟動:netstat -natulp | grep maxscale
5、在主庫(4.122)上添加用于客戶端連接服務器的用戶名
grant all on *.* to student@'%' identified by '123456';
6、在4.125上:maxadmin -P4010 -uadmin -pmariadb //訪問控制后臺
list servers //顯示所有服務器主機,可以看到服務器的運行信息
7、用宿主機做客戶端連接中間件的登陸方法:
mysql -h292.168.4.125 -P4006 -utest -p123456
8、測試方法:當從掛掉后,客戶端可寫可讀;
但是當主掛掉后,客戶端不可讀不可寫
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。