主要注重server.xml 、rule.xml、schema.xml 3个文件
日志在logs下wrapper.log mycat.log
wrapper.log显示MyCAT Server startup successfully启动成功
一:wrapper.conf下更改java地址
wrapper.java.command=java地址
二:server.xml下查看或更改mycat登录账号密码及其默认库
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">sxxfj</property>
<property name="defaultSchema">sxxfj</property>
</user>
二:schema.xml下更改分库地址及其分表规则
<schema name="sxxfj" checkSQLschema="false" sqlMaxLimit="100" randomDataNode="dn1,dn2">
<!-- auto sharding by id (long) -->
<!--splitTableNames 启用<table name 属性使用逗号分割配置多个表,即多个表使用这个配置 name 表名 dataNode 分库及其地址 rule 分片规则-->
<table name="tb_order_declaration" dataNode="dn1,dn2" rule="mod_rule" />
<!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate"
/> -->
</schema>
<!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
/> -->
<dataNode name="dn1" dataHost="localhost1" database="sxxfj" />
<dataNode name="dn2" dataHost="localhost2" database="sxxfj" />
<!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />
<dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />
<dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" />
<dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> -->
<dataHost name="localhost1" 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="mysql地址1:3306" user="root"
password="mysql地址1密码">
</writeHost>
<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
<dataHost name="localhost2" 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="hostM2" url="mysql地址2:3306" user="root"
password="mysql地址2密码">
</writeHost>
<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
三:rule.xml下更改或添加规则
<tableRule name="mod_rule">
<rule>
<!-- 字段名 -->
<columns>channel_no</columns>
<!-- 分片规则 -->
<algorithm>murmur</algorithm>
</rule>
</tableRule>
<function name="murmur"
class="io.mycat.route.function.PartitionByMurmurHash">
<property name="seed">0</property><!-- 默认是0 -->
<property name="count">2</property><!-- 要分片的数据库节点数量,必须指定,否则没法分片 -->
<property name="virtualBucketTimes">160</property><!-- 一个实际的数据库节点被映射为这么多虚拟节点,默认是160倍,也就是虚拟节点数是物理节点数的160倍 -->
<!-- <property name="weightMapFile">weightMapFile</property> 节点的权重,没有指定权重的节点默认是1。以properties文件的格式填写,以从0开始到count-1的整数值也就是节点索引为key,以节点权重值为值。所有权重值必须是正整数,否则以1代替 -->
<!-- <property name="bucketMapPath">/etc/mycat/bucketMapPath</property>
用于测试时观察各物理节点与虚拟节点的分布情况,如果指定了这个属性,会把虚拟节点的murmur hash值与物理节点的映射按行输出到这个文件,没有默认值,如果不指定,就不会输出任何东西 -->
</function>