Mycat 實現 MySQL 主從架構的讀寫分離

本次實驗基於上一個實驗:Mycat+MySQL集羣耦合
鏈接:https://blog.51cto.com/14783377/2489450

實驗背景:
雖然在上一個實驗中已經在配置文件中,分配了讀寫主機;但是並沒有真正實現讀寫分離功能



配置Mycat對MySQL主從集羣的讀寫分離功能

1、修改< dataHost > 的balance屬性,通過此屬性配置讀寫分離的類型

1)先按 “Ctrl+C” 停止 Mycat 進程的運行
[root@CentOS-4 bin]#
[root@CentOS-4 bin]# ./mycat status
Mycat-server is running (12445).
[root@CentOS-4 bin]# “Ctrl+C” #停止Mycat運行
Mycat 實現 MySQL 主從架構的讀寫分離
[root@CentOS-4 bin]#
[root@CentOS-4 bin]# ./mycat status
Mycat-server is not running.
[root@CentOS-4 bin]#

2)修改 schema.xml
[root@CentOS-4 ~]#
[root@CentOS-4 ~]# cd /usr/local/mycat/conf/
[root@CentOS-4 conf]# vim schema.xml #編輯修改配置文件

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"&gt;

    &lt;schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1" &gt;
    &lt;/schema&gt;
    &lt;dataNode name="dn1" dataHost="CentOS-4" database="testdb" /&gt;
    &lt;dataHost name="CentOS-4" maxCon="1000" minCon="10" balance="3"
                      writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"&gt;
            &lt;heartbeat&gt;select user()&lt;/heartbeat&gt;
            &lt;!-- can have multi write hosts --&gt;
            &lt;writeHost host="hostM1" url="192.168.18.103:3306" user="root"
                               password="Ctsi.2020"&gt;
                    &lt;!-- can have multi read hosts --&gt;
                    &lt;readHost host="hostS2" url="192.168.18.104:3306" user="root" password="Ctsi.2020" /&gt;
            &lt;/writeHost&gt;
    &lt;/dataHost&gt;

</mycat:schema>

[root@CentOS-4 conf]#
[root@CentOS-4 conf]#
Mycat 實現 MySQL 主從架構的讀寫分離

3)啓動 Mycat 使配置生效
[root@CentOS-4 bin]#
[root@CentOS-4 bin]# ./mycat console
[root@CentOS-4 bin]#
[root@CentOS-4 bin]# ./mycat status
Mycat 實現 MySQL 主從架構的讀寫分離

此時就實現了對MySQL一主一從集羣的讀寫分離

注:如果想實現對MySQL雙主多從環境的讀寫分離,需要將 schema.xml 模塊中 balance 的值設置成1即可

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