# 下载mycat:
wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190627191042- linux.tar.gz
tar zxf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz -C /usr/local/
yum install java-1.8.0-openjdk -y # 安装java-jdk:
echo "export PATH=/usr/local/mycat/bin:$PATH" > /etc/profile.d/mycat.sh # 配置mycat环境变量:
sh /etc/profile.d/mycat.sh
配置mycat 两个配置文件
server.xml 文件添加内容:
<user name="mycatuser1">
<property name="password">mycatuser1</property>
<property name="schemas">abc</property>
</user>
schema.xml 替换内容为:
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="abc" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="host1" database="abc" />
<dataHost name="host1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.100.102:3306" user="root" password="root">
<readHost host="hostS1" url="192.168.100.103:3306" user="root" password="root" />
</writeHost>
</dataHost>
</mycat:schema>
说明:abc是真实的数据库名称,不能设置别名。
dbDriver:指定连接后端数据库使用的 Driver,目前可选的值有 native 和 JDBC。使用 native 的话,因为这个值执行的是二进制的
mysql 协议,所以可以使用 mysql 和 maridb。
balance: 负载均衡类型:
balance=”0”, 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
balance=”1”,全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,
当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
balance=”2”,所有读操作都随机的在 writeHost、readhost 上分发。
balance=”3”,所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力
参考:
https://www.cnblogs.com/yuwenS/p/15047985.html
https://zhuanlan.zhihu.com/p/419873530
mycat的lib目录需下载驱动文件postgresql.jar才能正常链接:
https://mvnrepository.com/artifact/org.postgresql/postgresql/42.4.1
http://www.java2s.com/ref/jar/download-postgresql4214jar-file.html
