wb.ouyang

毕竟几人真得鹿,不知终日梦为鱼

导航

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版本下载链接

gitcode链接

 

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

image

 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的数据库

image

 查看TESTDB库中的表

image

 

 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

image

 

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

image

 

3.2、测试插入记录

由于测试的schema.xml中配置的rule=auto-sharding-long,vi autopartition-long.txt

image

 

测试插入数据

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');

image

 

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

image

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

image

  102虚拟机的mysql的 db3.tb_person

image

 

posted on 2025-12-23 03:26  wenbin_ouyang  阅读(32)  评论(0)    收藏  举报