在现有的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. -umycat -p123456 -P8066

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

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

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

上一篇:Linux Centos下MySQL主从Replication同步配置(一主一从)


下一篇:exp