Mycat下载地址:https://github.com/MyCATApache/Mycat-Server/releases
我的版本是1.6.7.5-release的Linux版本。
自己电脑解压后将mycat文件夹全部移动到Linux目录中。
其中在/mycat/conf/ 目录下设置三个修改三个文件的数据。
网上有许多设置教程,在这记一些遇到的问题
设置完后在 mycat/bin/下执行mycat。
./mycat start #后台运行
./mycat console #有控制台运行
出现错误,是因为mycat文件夹中包含没有执行权限的文件,执行chmod -R +x mycat ,全部加上执行权限。
再次运行
自己 创建 logs目录即可,
dbDriver值改为native,url=127.0.0.1:3306
dbDriver值为jdbc ,url=jdbc:mysql://127.0.0.1:3306?useSSL=false&serverTimezone=UTC&characterEncoding=utf8
连接mycat正常
有十多种分片规则,按月分片的不能跨年。
本人使用【mod-long】分片,记录几个注意事项
1.id为自增的,需要加上 autoIncrement="true" 。
2.在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一。为此, MyCat 提供了全局sequence,我使用的数据库的方式。
在 sequence_db_conf.properties文件下,添加对应的需要自增的表,【表名=节点名】
server.xml
3.执行sql文件,否则会出现1003 - mycat sequnce err.java.lang.RuntimeException: can't fetch sequnce in db,sequnce :PAYMENT_RECORD detail:FUNCTION yannuo_ccb_canteen_online.mycat_seq_nextval does not exist 的异常。在mycat/conf/目录下。
执行完成后会新增一个表和四个函数,用于维护全局唯一id,且在表中记录所维护的自增表。
结果
插入两条数据
不同表,查询成功