MyCat学习笔记
MyCat官网 - Mycat数据库分库分表中间件
资源下载地址 : http://dl.mycat.io/
基础
先了解下理论概念:MySQL数据库切分
MySQL分布式数据库中间件对比, 通过这篇文章最终选择使用MyCat
安装配置MyCat
详见:
目录结构
详见:
附上我自己测试用的, 已经配置好的MyCat下载地址 :
链接: https://pan.baidu.com/s/1TYyBZAbIfF1jrgBoEDqpgQ 提取码: 5396
里面有个数据库
文件夹, 里面的db1.sql, db2.sql, db3.sql是建库脚本, MyCat测试SQL.sql是测试用的脚本.
关于几个重要的配置文件, 像schema.xml
,rule.xml
,server.xml
里面都有很详细的注释.
监控
详见 :
需要注意的点
-
useGlobleTableCheck ( 控制全局表的一致性检测 )
如果设置了useGlobleTableCheck ( 这个配置在 server.xml中 ) 为开启状态的话,就需要在每个全局表中添加一个
_mycat_op_time
字段,类型为bigint, 不然会报**Unknown column ‘_mycat_op_time’ in ‘field list’**这个错误, 这个的原理就是通过在全局表增加_mycat_op_time
字段来进行一致性检测,类型为bigint,create语句通过mycat执行会自动加上这个字段,其他情况请自己手工添加。
结合MySQL主从库实现读写分离
- 将dataHost改为下面这样:
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
<heartbeat>show slave status</heartbeat>
<!-- writeHost readHost 指定后端数据库的相关配置给mycat,用于实例化后端连接池。 -->
<!-- 这就是一个简单的读写分离,主机是HostM1, 从机为HostS1 -->
<!-- 可以有多个写(主)主机 -->
<writeHost host="hostM1" url="localhost:3306" user="root" password="111111">
<!-- 可以有多个读(从)主机 -->
<readHost host="hostS1" url="192.168.0.145:3306" user="root" password="111111" />
</writeHost>
</dataHost>
注意这里switchType="2"
, <heartbeat>show slave status</heartbeat>
-
配置MySQL主从库