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