mysql系列之8------讀寫分離

一、前言:讀寫分離的基本原理

       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 -h192.168.4.125 -P4006 -utest -p123456

 8、測試方法:當從掛掉後,客戶端可寫可讀;

     但是當主掛掉後,客戶端不可讀不可寫

























    



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章