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

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

       mysql的讀寫分離的基本原理是:讓master(主數據庫)來響應事務性操做,sql

讓slave(從數據庫)來響應select非事務性操做,數據庫

而後再採用主從複製來把master上的事務性操做同步到slave數據庫中。實現簡單的負載均衡。vim


2、前期準備工做:服務器

 一、準備兩臺服務器,我這裏準備的是192.168.4.122(主),192.168.4.123(從)負載均衡

      另外準備一臺服務器安裝中間件服務器(192.168.4.125)ide

 二、首先把兩臺服務器作好主從同步。測試

 三、準備讀寫分離的軟件:maxscale-2.1.2-1(中間件)spa

3、maxscale安裝和配置(4.125)router

 一、安裝:rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm 

 二、修改配置文件: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

 三、在主庫(4.122)上添加上面須要的兩個受權用戶

   grant replication slave,replication client on *.* to scalemon@'%' identified by "123456";

   grant select on mysql.* to maxscale@'%' identified by "123456";

 四、啓動服務:maxscale -f /etc/maxscale.cnf

      中止服務:ps -C   maxscale(查進程)        kill -9 13109(殺進程)

     查看服務是否啓動:netstat -natulp | grep maxscale

 五、在主庫(4.122)上添加用於客戶端鏈接服務器的用戶名

     grant  all  on  *.*   to student@'%' identified by '123456';

 六、在4.125上:maxadmin -P4010 -uadmin -pmariadb //訪問控制後臺

    list servers    //顯示全部服務器主機,能夠看到服務器的運行信息

 七、用宿主機作客戶端鏈接中間件的登錄方法:

    mysql -h192.168.4.125 -P4006 -utest -p123456

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

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

相關文章
相關標籤/搜索