下载
安装
- 解压即可
编辑
conf文件 | 文件 | 作用 | 修改内容 | | —- | —- | —- | | rule.xml | 切分算法 | 修改算法,比如修改 mod-long 分片数量为 2 | | server.xml | 虚拟为一个 MySQL | 修改访问用户名,密码和逻辑库 | | schema.xml | 数据库连接、读写分离、负载均衡、数据表映射 | 定义数据库连接、读写分离、负载均衡、数据表映射 |rule.xml
<function name="mod-long" class="io.mycat.route.function.PartitionByMod"><!-- how many data nodes --><property name="count">2</property></function>
server.xml ```xml
Root666. test test
- schema.xml```xml<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"><!--定义MyCat的逻辑库,逻辑库的概念与MySQL中的 database 概念相同可配置多个--><!-- 其中checkSQLschema 表明是否检查并过滤SQL中包含schema的情况,如逻辑库为 TESTDB, 则可能写为select * from TESTDB.edu_user,此时会自动过滤TESTDB,SQL变为select * from edu_user,若不会出现上述写法,则可以关闭属性为false --><!--sqlMaxLimit默认返回的最大记录数限制,即自带 limitMyCat1.4版本里面,用户的 Limit 参数会覆盖掉MyCat的sqlMaxLimit默认设置--><schema name="test" checkSQLschema="true" sqlMaxLimit="100"><!-- 配置分片中真实数据库中的表事务逻辑表 --><table name="t_user" primaryKey="id" dataNode="dn1,dn2" rule="mod-long"/></schema><!--定义MyCat的数据节点--><!-- database 真实数据库 --><dataNode name="dn1" dataHost="cluster1" database="test" /><dataNode name="dn2" dataHost="cluster2" database="test" /><!-- 配置连接关系 --><!--maxCon minCon 连接池大小balance 负载均衡类型0 不开启读写分离,读请求都发送到当前可用的 writeHost1 全部的 readHost 和 stand by writeHost (readHost 对应的 writeHost?) 参与 select 语句的负载均衡2 所有 writeHost 和 readHost 一起负责读请求3 writeHost 处理写 readHost 处理读writeType 写操作负载均衡0 所有的写操作都分发给第一个 writeHost,仅当该节点宕机,才启用第二个 writeHost切换记录在配置文件中: dnindex.properties1 仅仅对 galera 集群这种集群起效,mycat 会随机选择一个 writeHost 并且写入数据非 galera 集群,不要配置,否则会导致数据不一致的严重清空switchType 切换节点判断0 根据 mycat 心跳检测进行判断1 集群主从同步的状态信息判断2 nothing--><dataHost name="cluster1" maxCon="1000" minCon="10" balance="2"writeType="1" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><!-- 心跳检测 sql --><heartbeat>select user()</heartbeat><!-- can have multi write hosts --><!-- 配置写节点和从节点,pxc集群可读可写,所以随便搞 --><writeHost host="w1" url="192.168.1.201:3306" user="admin"password="Root666."><readHost host="w1r1" url="192.168.1.202:3306" user="admin" password="Root666." ></readHost><readHost host="w1r2" url="192.168.1.203:3306" user="admin" password="Root666." ></readHost></writeHost><!-- 配置冗余 --><writeHost host="w2" url="192.168.1.202:3306" user="admin"password="Root666."><readHost host="w2r1" url="192.168.1.201:3306" user="admin" password="Root666." ></readHost><readHost host="w2r2" url="192.168.1.203:3306" user="admin" password="Root666." ></readHost></writeHost></dataHost><dataHost name="cluster2" maxCon="1000" minCon="10" balance="2"writeType="1" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><!-- 心跳检测 sql --><heartbeat>select user()</heartbeat><!-- can have multi write hosts --><!-- 配置写节点和从节点,pxc集群可读可写,所以随便搞 --><writeHost host="w1" url="192.168.1.204:3306" user="admin"password="Root666."><readHost host="w1r1" url="192.168.1.205:3306" user="admin" password="Root666." ></readHost><readHost host="w1r2" url="192.168.1.206:3306" user="admin" password="Root666." ></readHost></writeHost><!-- 配置冗余 --><writeHost host="w2" url="192.168.1.205:3306" user="admin"password="Root666."><readHost host="w2r1" url="192.168.1.204:3306" user="admin" password="Root666." ></readHost><readHost host="w2r2" url="192.168.1.206:3306" user="admin" password="Root666." ></readHost></writeHost></dataHost></mycat:schema>
端口配置
| 端口 | 作用 |
|---|---|
| 8066 | 数据服务,外部访问 |
| 9066 | 管理端口,接收指令,比如重载指令 |
运行和关闭
cd bin mycat start mycat stop mycat console # 控制台启动这种启动方式在控制台关闭后, MyCat 服务也将关闭,适合调试使用
重载文件
- mysql / navivate 连接
**9066 **端口,键入reload [@@](#)config_all;
注意
设置为 MySQL 大小写不敏感
- Linux 版本的 MySQL ,需要设置为 MySQL 大小写不敏感,否则可能会发生找不到 表 的问题
- mycat 上创建表,对应 mysql 中会生成 大写名称 的表
[mysqld]lower_case_table_names=1
- mycat 上创建表,对应 mysql 中会生成 大写名称 的表
