采用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 一样

采用mycat2搭建mysql8读写分离_第1张图片

连接成功后,创建逻辑库

create database mydb1;

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

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

vim mydb1.schema.json

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

"targetName":"mycatdb1Cluster",

采用mycat2搭建mysql8读写分离_第2张图片

添加完,保存退出

 三、创建主从数据源

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

在 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 

你可能感兴趣的:(mycat2,mysql,centos)