一、环境准备

1、环境信息

192.168.201.161  主库
192.168.201.162  从库
192.168.201.163  mycat
192.168.201.164  客户端

在这里插入图片描述

2、架构图

在这里插入图片描述

3、主从复制搭建

参考
可参考:
第四阶段【MySQL数据库:主从复制】20:使用AI工具编写基于GTID主从复制的自动部署脚本并测试验证
在这里插入图片描述
在这里插入图片描述

4、客户端安装mysql

在164节点进行安装mysql,可参考:
Linux环境使用脚本自动安装MySQL8.0.25版本数据库

二、部署MyCAT

1、安装JDK

在163库,单机库安装jdk

yum  install  java-1.8.0-openjdk   java-1.8.0-openjdk-devel -y
java -version

在这里插入图片描述

2、下载安装MyCAT

网盘下载地址

链接: https://pan.baidu.com/s/1XjY-nZuD5s3fY1S6r2M8tw?pwd=r5rb 
提取码: r5rb

在这里插入图片描述

cd /usr/src
unzip mycat2-install-template-1.21.zip
cd mycat/lib/
mv /usr/src/mycat2-1.21-release-jar-with-dependencies.jar ./
mv /usr/src/mycat /usr/local

在这里插入图片描述

3、在MySQL中创建MyCAT的连接用户

在主库161执行

CREATE USER 'mycat_rw'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'admin';
GRANT all ON *.* TO 'mycat_rw'@'%';

在这里插入图片描述

4、创建一个用来给MyCAT连接的库

在主库161执行

create database mycat;

在这里插入图片描述

5、修改数据源配置文件

在163库执行

cd /usr/local/mycat/
vim conf/datasources/prototypeDs.datasource.json

修改MySQL相关配置

"password":"admin",
"type":"JDBC",
"url":"jdbc:mysql://192.168.201.161:3306/mycat?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
"user":"mycat_rw",

在这里插入图片描述

6、修改MyCAT的用户名密码

cd /usr/local/mycat/
vim conf/users/root.user.json

修改为如下内容

{
        "dialect":"mysql",
        "ip":null,
        "password":"admin",
        "transactionType":"proxy",
        "username":"mycat"
}

在这里插入图片描述

7、启动MyCAT

(1)启动

cd /usr/local/mycat/
chmod +x ./bin/*
./bin/mycat start

在这里插入图片描述

(2)重启

cd /usr/local/mycat/
./bin/mycat restart

在这里插入图片描述

(3)关闭

cd /usr/local/mycat/
./bin/mycat stop

在这里插入图片描述

(4)查看状态

cd /usr/local/mycat/
./bin/mycat status

在这里插入图片描述

(5)日志文件

如果启动异常,查看日志文件

tail -100f /usr/local/mycat/logs/wrapper.log

在这里插入图片描述

8、登录MyCAT的数据访问端口

在164进行登录,164是客户端机器
注意,这里的地址是安装了mycat的那台,就是163节点

mysql -umycat -p'admin' -P8066 -h192.168.201.163

在这里插入图片描述

9、数据源相关配置【这些有兴趣可以了解下】

cd /usr/local/mycat
ll conf/

在这里插入图片描述

(1)服务相关配置

cd /usr/local/mycat/conf
vim server.json

在这里插入图片描述

(2)用户相关配置

cd /usr/local/mycat/conf
vim users/root.user.json

在这里插入图片描述

(3)事务类型

可以直接在mycat中查询事务类型

select @@transaction_policy;

在这里插入图片描述
也可以直接修改事务类型

select @@transaction_policy;
set transaction_policy='xa';
select @@transaction_policy;

在这里插入图片描述

(4)数据源相关配置

cd /usr/local/mycat
vim conf/datasources/prototypeDs.datasource.json

在这里插入图片描述

(5)逻辑库表的相关配置

cd /usr/local/mycat/conf
vim schemas/mysql.schema.json

在这里插入图片描述

(6)集群相关的配置文件

cd /usr/local/mycat/conf
vim clusters/prototype.cluster.json

在这里插入图片描述

三、读写分离配置

1、创建写库配置

在客户端164节点,进行连接登录到163库,就是安装了MyCAT的节点

mysql -umycat -p'admin' -P8066 -h192.168.201.163

在这里插入图片描述

执行如下命令,注意,将配置改成主库161的ip

/*+ mycat:createDataSource{
"name":"write",
"url":"jdbc:mysql://192.168.201.161:3306/?useSSL=false&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true",
"user":"mycat_rw",
"password":"admin"
} */;

在这里插入图片描述

2、创建读库的配置

注意,将配置改成从库162的ip

/*+ mycat:createDataSource{
"name":"read",
"url":"jdbc:mysql://192.168.201.162:3306/?useSSL=false&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true",
"user":"mycat_rw",
"password":"admin"
} */;

在这里插入图片描述

3、确定数据源是否配置成功

执行如下命令,确定是否创建成功

/*+ mycat:showDataSources{} */;

在这里插入图片描述
在这里插入图片描述

或者查看下配置文件,在163节点进行查看,因为mycat是部署在163节点

cd /usr/local/mycat/conf/datasources
ll

在这里插入图片描述

cat read.datasource.json

在这里插入图片描述

cat  write.datasource.json

在这里插入图片描述

4、配置集群

在客户端节点,也就是164节点进行连接

mysql -umycat -p'admin' -P8066 -h192.168.201.163

然后执行:

/*! mycat:createCluster{"name":"RW","masters":["write"],"replicas":["read"]} */;
 
/*+ mycat:showClusters{} */;

在这里插入图片描述

5、配置逻辑库

在客户端节点,也就是164节点进行连接

mysql -umycat -p'admin' -P8066 -h192.168.201.163

创建数据库

create database test_rw;

在这里插入图片描述
编辑配置文件,在163节点进行配置

cd /usr/local/mycat/conf/schemas
ll

在这里插入图片描述

vim test_rw.schema.json

修改为如下:

{
        "customTables":{},
        "globalTables":{},
        "normalProcedures":{},
        "normalTables":{},
        "schemaName":"test_rw",
        "shardingTables":{},
        "targetName":"RW",
        "views":{}
}

在这里插入图片描述

6、重启MyCAT

163节点进行重启

/usr/local/mycat/bin/mycat restart
/usr/local/mycat/bin/mycat status

在这里插入图片描述

四、测试读写分离

在客户端节点进行连接测试

1、进行连接

mysql -umycat -p'admin' -P8066 -h192.168.201.163

在这里插入图片描述

2、写入数据

use test_rw;
create table t1(
    id int not null auto_increment primary key,
    name varchar(20)
);
insert into t1(name) values ('a');

在这里插入图片描述

3、查询数据

select *,@@server_id from t1;

在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐