Mycat是一款基于阿里开源产品Cobar而研发的开源数据库分库分表中间件(基于Java语言开发)。官网所言:Mycat国内最活跃的、性能最好的开源数据库中间件!
这里用的是1.6.7.4稳定版
解压命令
tar -zxvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz
解压后的目录
主要是修改如下3个配置文件
①schema.xml:定义逻辑库,表、分片节点等内容
②rule.xml:定义分片规则
③server.xml:定义用户以及系统相关变量,如端口等
进入到mycat解压目录下的conf目录
- "1.0"?>
- mycat:schema SYSTEM "schema.dtd">
- <mycat:schema xmlns:mycat="http://io.mycat/">
-
-
- <schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">
-
- schema>
-
- <dataNode name="dn1" dataHost="localhost1" database="mytest" />
-
-
- <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
-
- <heartbeat>select user()heartbeat>
-
- <writeHost host="hostM1" url="192.168.92.241:3306" user="root" password="123456">
-
- <readHost host="hostS1" url="192.168.92.242:3306" user="root" password="123456">readHost>
- writeHost>
- dataHost>
-
- mycat:schema>
注意:下面图少了标签,导致启动时报错
注意:下面图少了标签,导致启动时报错
注意:下面图少了标签,导致启动时报错
表头的标签不要删错
Mycat 作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况。
mysql -udhapp -pxxxxxx -h 192.168.92.241 -P 3306
mysql -udhapp -pxxxxxx -h 192.168.92.242 -P 3306
#如远程访问报错,请建对应用户
grant all privileges on . to root@'%' identified by '123123'
1、 控制台启动 :去 mycat解压目录下的bin 目录下执行 ./mycat console
2 、后台启动 :去 mycat解压目录下的bin 目录下执行 ./mycat start
为了能第一时间看到启动日志,方便定位问题,我们选择1控制台启动。
启动时报错了:
Caused by: io.mycat.config.util.ConfigException: schema TESTDB didn't config tables,so you must set dataNode property!
原因:
在打开一个虚拟机,
此登录方式用于通过 Mycat 查询数据,我们选择这种方式访问Mycat
mysql -umycat -p123456 -P 8066 -h 192.168.92.241
8066是macat默认端口号,后边的ip地址是mycat所在的地址
添加一条数据
ctrl+c关掉MyCat
修改配置文件:
启动mycat:
手动修改数据库方便查看效果:
进行查询测试:
添加测试: