环境准备: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上进行读操作,查看是否能随机看到该数据