采用mycat2搭建mysql8读写分离

一、前提条件

搭建读写分离,前提是安装了mycat2和搭建了mysql主从复制(两台服务器,一主一从)

搭建主从复制可以参考我的这篇帖子 centos7安装mysql8主从复制_义明的博客-CSDN博客

安装mycat2可以参考我的这篇帖子centos7下安装mycat2_义明的博客-CSDN博客

二、创建逻辑库

进入mycat  bin目录下

我的mycat是安装在这个目录下 /usr/local/mycat2/mycat/bin ,你们跳转到你们对应的目录下

cd /usr/local/mycat2/mycat/bin

启动 mycat

./mycat start

通过 navicat  连接 mycat,和连接 mysql 一样

连接成功后,创建逻辑库

create database mydb1;

 注意:逻辑库名称必须和物理数据库名称一致,我之前就因为名称不一致,导致后面测试失败

进入mycat   conf/schemas 目录下,就会发现多了  逻辑库名.schema.json  文件,这就是你的逻辑库配置文件,编辑该文件

vim mydb1.schema.json

添加  "targetName":"xxxx",  集群名称

"targetName":"mycatdb1Cluster",

添加完,保存退出

 三、创建主从数据源

逻辑库创建好后,我们为该逻辑库创建主从数据源

在 navicat 下 执行以下命令:

#创建主库数据源
/*+ mycat:createDataSource{"name":"mycatdb1Write","url":"jdbc:mysql://192.168.168.224:3306/mydb1?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8","user":"root","password":"123456"} */ 

#创建从库数据源
/*+ mycat:createDataSource {"name":"mycatdb1Read","url":"jdbc:mysql://192.168.168.225:3306/mydb1?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8","user":"root","password":"123456"} */

 查看主从数据库是否创建成功

/*+ mycat:showDataSources{} */

 进入 mycat   conf/datasources 目录下,查看mycat自动为我们生成数据源文件

 四、创建集群配置信息

#创建集群信息,引用上面创建的主从数据源
/*! mycat:createCluster{"name":"mycatdb1Cluster","masters":["mycatdb1Write"],"replicas":["mycatdb1Read"]} */

查看集群信息

/*+ mycat:showClusters{} */

 五、测试

在主库创建user表

CREATE TABLE `user`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;


#人为造成主从数据不一致,方便观察读写分离现象
INSERT into user (name) values(@@hostname)

连接 mycat  执行以下 sql

select * from mydb1.user 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值