http://www.mycat.org.cn/mycat1.html
解压缩文件拷贝到linux下 /usr/local/
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
①schema.xml:定义逻辑库,表、分片节点等内容
②rule.xml:定义分片规则
③server.xml:定义用户以及系统相关变量,如端口等
创建账号
mysql> create user mycat identified by '123456';
Query OK, 0 rows affected (0.02 sec)
mysql> grant all privileges on *.* to mycat;
删除标签间的表信息,
标签只留一个,
标签只留一个,
只留一对
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<dataNode name="dn1" dataHost="host1" database="mytestdb" />
<dataHost name="host1" maxCon="1000" minCon="10" balance="0"
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.121.140:3306" user="mycat" password="123456">
<!-- can have multi read hosts -->
<readHost host="hostS1" url="192.168.121.141:3306" user="mycat" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
启动mycat:
./mycat console
jvm 1 | MyCAT Server startup successfully. see logs in logs/mycat.log 表示启动成功!
Mycat作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况。
注意:要关闭防火墙!
①控制台启动 :去mycat/bin 目录下执行 ./mycat console
②后台启动 :去mycat/bin 目录下 ./mycat start
为了能第一时间看到启动日志,方便定位问题,我们选择①控制台启动。
mysql -umycat -p123456 -P 9066 -h 192.168.121.140
#常用命令如下:
show database
此登录方式用于通过Mycat查询数据,我们选择这种方式访问Mycat
mysql -umycat -p123456 -P 8066 -h 192.168.200.168
show databases;
use TESTDB;
show tables;
select * from mytbl;#查询的哪个库?{应该是主机}
修改从机的数据,再次查询!
1)之前的配置已分配了读写主机,是否已实现读写分离?
默认:balance="0"
2)修改的balance属性,通过此属性配置读写分离的类型
负载均衡类型,目前的取值有4 种:
(1)balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
(2)balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
(3)balance="2",所有读操作都随机的在 writeHost、readhost 上分发。
(4)balance="3",所有读请求随机的分发到 readhost 执行,writerHost 不负担读压力
3)为了能看到读写分离的效果,把balance设置成2,会在两个主机间切换查询 (2只限于测试,生产环境请选择1或3)
…
<dataHost name="host1" maxCon="1000" minCon="10" balance="2"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
…
./mycat console
多次执行查询语句即可看到效果
select * from mytbl ;