myCat 安装及配置
一、查看服务器上是否安装jdk
运行=>cmd=>javac,如提示:
不是内部或外部命令,也不是可运行的程序
或批处理文件。
表示未安装jdk
2、下载jdk,官网 https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
3、安装jdk
4、配置jdk环境变量
新建 系统变量 JAVA_HOME,配置安装路径
C:\Program Files\Java\jdk1.8.0_221
新建 系统变量 CLASSPATH
.%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
Path增加以下内容
%JAVA_HOME%\bin 和 %JAVA_HOME%\jre\bin
5、重新允许 javac,看是否配置成功
二、安装配置MyCat
下载mycat 官网:[http://www.mycat.org.cn/](http://www.mycat.org.cn/)
1、将mycat复制到安装目录
2、修改配置 \mycat\conf 目录下
schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="10000" dataNode="dn1">
</schema>
<!--指定节点-->
<dataNode name="dn1" dataHost="localhost1" database="testdb" />
<!-- writeType和balance是用来控制后端集群的读写分离的关键参数,这里我用了双主双从的集群配置
这里的测试过程比较麻烦,所以直接贴结论:
1.balance=0时,读操作都在localhost上(localhost失败时,后端直接失败)
2.balance=1时,读操作会随机分散在localhost1和两个readhost上面(localhost失败时,写操作会在localhost1,如果localhost1再失败,则无法进行写操作) 双主备用用这种模式
3.balance=2时,写操作会在localhost上,读操作会随机分散在localhost1,localhost1和两个readhost上面(同上)
4.writeType=0时,写操作会在localhost上,如果localhost失败,会自动切换到localhost1,localhost恢复以后并不会切换回localhost进行写操作
5.writeType=1时,写操作会随机分布在localhost和localhost1上,单点失败并不会影响集群的写操作,但是后端的从库会无法从挂掉的主库获取更新,会在读数据的时候出现数据不一致
举例:localhost失败了,写操作会在localhost1上面进行,localhost1的主从正常运行,但是localhost的从库无法从localhost获取更新,localhost的从库于其他库出现数据不一致
-->
<dataHost name="localhost1" maxCon="5000" minCon="1" balance="1"
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.0.1:3306" user="root"
password="123456*">
<!--<readHost host="hostS2" url="10.26.87.23:3306" user="root" password="Shiseido20170101*" />-->
</writeHost>
<writeHost host="hostM2" url="192.168.0.2:3306" user="root"
password="123456">
<!--<readHost host="hostS2" url="10.26.87.22:3306" user="root" password="Shiseido20170101*" />-->
</writeHost>
<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
server.xml 中 user
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
<property name="defaultSchema">TESTDB</property>
<!--schemas 必须大写,否则报错 -->
</user>
server.xml优化配置
<property name="processors">32</property>
<property name="processorExecutor">64</property>
<property name="processorBufferChunk">4096</property>
<property name="processorBufferPool">409600</property>
<!--默认为type 0: DirectByteBufferPool | type 1 ByteBufferArena | type 2 NettyBufferPool -->
<property name="processorBufferPoolType">0</property>
修改端口
<property name="serverPort">8076</property>
<property name="managerPort">9076</property>
wrapper.conf 指定jdk安装路径
wrapper.java.command=C:\Program Files\Java\jdk1.8.0_251\bin\java.exe
优化配置
wrapper.java.additional.4=-XX:MaxDirectMemorySize=32G
wrapper.java.additional.9=-Xmx8G
wrapper.java.additional.10=-Xms8G
wrapper.java.initmemory=128
wrapper.java.maxmemory=2048
3、开通mycat端口 8066 和 9066(监听),防火墙入栈规则 增加
4、运行=>cmd=> cd mycat安装目录
安装mycat
mycat.bat install
启动mycat
mycat.bat start
查看mycat状态
mycat.bat status
MyCat命令:
停止:
mycat.bat stop
重启:
mycat.bat restart