在现有的mysql主从基础上,搭建mycat实现数据的读写分离

环境准备:MySQL服务器做好主从复制;centos6的系统

    主:192.168.164.131

    从:192.168.164.144

    mycat服务器:192.168.164.141

a.将MySQL主从做好,测试没问题

b.在mycat.io中下载好软件

c.解压到指定路径下: tar xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C /usr/local/

d.在mycat服务器上装好java环境

e.进入/usr/local/mycat/conf进行配置

此处是我的配置文件

vim schema.xml                该配置文件定义的效果为:读操作随机分发到hostM1和hostS2上,写操作只在hostM1上

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
        <schema name="DBB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn_test"> </schema>
        <dataNode name="dn_test" dataHost="dh_01" database="yichangbwg" />
        <dataHost name="dh_01" maxCon="1000" minCon="10" balance="2"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="-1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="hostM1" url="192.168.164.131:3306" user="root"
                                   password="hdlnmp">
                        <readHost host="hostS2" url="192.168.164.143:3306" user="root" password="hdlnmp" />
                </writeHost>
                <writeHost host="hostS1" url="192.168.164.143:3306" user="root"
                                   password="hdlnmp">
                </writeHost>
        </dataHost>
</mycat:schema>

另一个配置文件:

vim server.xml

...
...
<user name="mycat" defaultAccount="true">
                <property name="password">123456</property>
                <property name="schemas">DBB</property>

                <!-- 表级 DML 权限设置 -->
                <!--            
                <privileges check="false">
                        <schema name="TESTDB" dml="0110" >
                                <table name="tb01" dml="0000"></table>
                                <table name="tb02" dml="1111"></table>
                        </schema>
                </privileges>           
                 -->
        </user>
...

以上配置文件设置好之后,启动mycat服务

/usr/local/mycat/bin/mycat start

查询默认端口判断服务是否正常运行

netstat -nltp | grep 8066

netstat -nltp | grep 9066

测试mycat读写分离:

在mycat服务器上:

mysql -h127.0.0.1 -umycat -p123456 -P8066

测试方法:关闭mysql主服务器,查看是否还能在mycat上进行读操作

     关闭mysql从服务器,查看是否还能在mycat上进行读写操作

     在mysql从服务器上插入一条数据,在mycat上进行读操作,查看是否能随机看到该数据

原文地址:https://www.cnblogs.com/new-journey/p/10818119.html