打开链接下载mycat https://github.com/MyCATApache/Mycat-download/tree/master/1.6-RELEASE
选择win版。
mycat\conf\server.xml
<user name="root">
<property name="password">123456</property>
<property name="schemas">TESTDB</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>
<user name="user">
<property name="password">user</property>
<property name="schemas">TESTDB</property>
<property name="readOnly">true</property>
</user>
<user>标签表示连接mycat的用户,使用mycat后我们的应用是连接mycat,再由mycat去连接mysql
所以接下来要在schema.xml中配置mysql信息
<?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">
<!-- 这里不配置,代表所有的表分片到dn1节点-->
</schema>
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataHost name="localhost1" maxCon="1000" minCon="10" 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.56.101:3306" user="root" password="123456">
<!-- can have multi read hosts -->
<readHost host="hostS1" url="192.168.56.101:3316" user="root" password="123456" />
<readHost host="hostS2" url="192.168.56.101:3326" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
server.xml中的
<property name="schemas">TESTDB</property>
与 schema.xml的 <schema name="TESTDB"对应。
schema.xml的
<dataNode name="dn1" dataHost="localhost1" database="db1" />
database表示数据库名
使用mysql命令连接到mycat 进行增删改查的操作
mysql -uroot -p -h127.0.0.1 -P8066 -DTESTDB
-P8066 mycat的默认端口 (默认数据端口为8066,管理端口为9066)
-DTESTDB schema名非库名
使用mysql命令连接到mycat 进行管理
命令:mysql -uroot -proot -P9066 -h127.0.0.1
-u:用户名
-p:密码
-P:端口
-h:ip地址例:linux路径切换到mycat安装路径的bin目录中:输入命令
2、显示后端物理库连接信息,包括当前连接数,端口等信息。
命令:Show @@backend
3、显示当前前端客户端连接情况
命令:Show @@connection
4、当前线程池的执行情况,是否有积压(active_count)以及task_queue_size,后者为积压的待处理的SQL,若积压数目一直保值,则说明后端物理连接可能不够或者SQL执行比较缓慢
命令:show @@threadpool;
5、当前后端物理库的心跳检测情况,RS_CODE为1表示心跳正常
命令:show @@heartbeat;
6、显示数据节点的访问情况,包括每个数据节点当前活动连接数(active),空闲连接数(idle)以及最大连接数(maxCon) size,EXECUTE参数表示从该节点获取连接的次数,次数越多,说明访问该节点越多
命令:show @@datanode;
7、显示当前processors的处理情况,包括每个processor的IO吞吐量(NET_IN/NET_OUT)、IO队列的积压情况(R_QUEY/W_QUEUE),Socket Buffer Pool的使用情况 BU_PERCENT为已使用的百分比、BU_WARNS为Socket Buffer Pool不够时,临时创建的新的BUFFER的次数,若百分比经常超过90%并且BU_WARNS>0,则表明BUFFER不够,需要增大,参见性能调优手册。
命令:show @@processor;
8、显示缓存的使用情况,对于性能监控和调优很有价值
命令:show @@cache;
MAX为缓存的最大值(记录个数),CUR为当前已经在缓存中的数量,ACESS为缓存读次数,HIT为缓存命中次数,PUT 为写缓存次数,LAST_XX为最后操作时间戳,比较重要的几个参数:CUR:若CUR接近MAX,而PUT大于MAX很多,则表明MAX需要增大,HIT/ACCESS为缓存命中率,这个值越高越好。
9、杀掉客户端的连接,参数为连接的ID值,通过show @@connection,可以展示当前连接到MyCAT的所有客户端进程,若某个进程异常,则可以通过该命令杀掉连接,如 KILL @@CONNECTION 26907;
10、重新加载配置文件schema.xml
如果我们在原有的schema.xml中进行了修改,需要重新加载该文件使其生效。
命令:reload @@config;