Mycat 1.6.7.3 linux版本下载,安装及测试,3个节点的水平分表例子
环境 VirtualBox+centos7.9+mysql8.0.42,3台虚拟机,分别为192.168.100,192.168.101,192.168.102。后续称100虚拟机,101虚拟机,102虚拟机。
101和102是通过复制100生成,故启动后首先修改本机ip,然后修改mysql实例的uuid。
find / -name auto.cnf 修改mysql的uuid。
1、Mycat 1.6.7.3 linux版本下载链接
2、安装Mycat 1.6.7.3
以100虚拟机作为jdk和mycat的安装实例。
首先下载 OpenJDK8U-jdk_x64_linux_hotspot_8u472b08.tar.gz,安装jdk环境。
解压Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz
tar -xzvf Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz -C /usr/local
在lib文件夹下,查看mysql驱动包为5.1版本,将之重命名为mysql-connector-java-5.1.35.jar.bak。
上传mysql-connector-j-8.0.32.jar

chmod 777 mysql-connector-j-8.0.32.jar 修改这个jar包的权限。
schema.xml配置:3个节点的水平分表例子
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> <table name="tb_person" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> </schema> <dataNode name="dn1" dataHost="dhost1" database="db1" /> <dataNode name="dn2" dataHost="dhost2" database="db2" /> <dataNode name="dn3" dataHost="dhost3" database="db3" /> <dataHost name="dhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="master" url="jdbc:mysql://192.168.1.100:3306" user="root" password="xxx" /> </dataHost> <dataHost name="dhost2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="master" url="jdbc:mysql://192.168.1.101:3306" user="root" password="xxx" /> </dataHost> <dataHost name="dhost3" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="master" url="jdbc:mysql://192.168.1.102:3306" user="root" password="xxx" /> </dataHost>
启动mycat服务
/usr/local/mycat/bin/mycat start
停止mycat服务
/usr/local/mycat/bin/mycat stop
查看日志
tail -f /usr/local/mycat/logs/wrapper.log
连接mycat客户端,密码在配置文件 server.xml 可以配置
mysql -h 192.168.1.100 -P 8066 -uroot -p
查看当前mycat的数据库

查看TESTDB库中的表

3、测试
首先在100虚拟机mysql实例中创建db1库,101虚拟机mysql实例中创建db2库,102虚拟机mysql实例中创建db3库。
三个mysql实例开启远程访问权限
user mydql; select host,user from user; UPDATE user SET host='%' WHERE user='root'; FLUSH PRIVILEGES;
若没有开启远程访问权限,后续在mycat客户端上发送sql会报错:
ERROR 1105 (HY000): backend connect: java.lang.IllegalArgumentException: Invalid DataSource:0
3.1、测试创建表
连接mycat客户端,密码在配置文件 server.xml 可以配置
mysql -h 192.168.1.100 -P 8066 -uroot -p

检查101虚拟机的mysql实例的效果(100的db1库,101的db2库,102的db3库)

3.2、测试插入记录
由于测试的schema.xml中配置的rule=auto-sharding-long,vi autopartition-long.txt

测试插入数据
insert into tb_person(id,name,gender,age,email,tel,road,create_time,update_time) values(1, 'test', '男', 20, '[email protected]', '13912341234', 'road', '2025-12-23', '2025-12-23'); insert into tb_person(id,name,gender,age,email,tel,road,create_time,update_time) values(5000000, 'test', '男', 20, '[email protected]', '13912341234', 'road', '2025-12-23', '2025-12-23'); insert into tb_person(id,name,gender,age,email,tel,road,create_time,update_time) values(5000001, 'test', '男', 20, '[email protected]', '13912341234', 'road', '2025-12-23', '2025-12-23'); insert into tb_person(id,name,gender,age,email,tel,road,create_time,update_time) values(10000000, 'test', '男', 20, '[email protected]', '13912341234', 'road', '2025-12-23', '2025-12-23'); insert into tb_person(id,name,gender,age,email,tel,road,create_time,update_time) values(10000001, 'test', '男', 20, '[email protected]', '13912341234', 'road', '2025-12-23', '2025-12-23');

查看100虚拟机的mysql的 db1.tb_person

查看101虚拟机的mysql的 db2.tb_person

102虚拟机的mysql的 db3.tb_person

posted on 2025-12-23 03:26 wenbin_ouyang 阅读(32) 评论(0) 收藏 举报
浙公网安备 33010602011771号