MyCat读写分离是在建立在MySQL主从复制基础上的,点击查看MySQL主从复制
-
配置读写分离
-
登录MyCat,创建数据库,命令:
create database mydb01;
-
编辑配置文件,确定 物理库 是否配置正确,命令:
vim conf/schemas/mydb01.schema.json
-
添加代码,逗号分隔
"targetName":"dataSource",
-
登录MyCat,使用注解方式添加数据源,指向从机
/*+ mycat:createDataSource{ "name":"rwSepw", "url":"jdbc:mysql://192.168.171.100:3306/mycat_01?useSSL=false&characterEncodi ng=UTF-8&useJDBCCompliantTimezoneShift=true", "user":"root", "password":"123456" } */; /*+ mycat:createDataSource{ "name":"rwSepr", "url":"jdbc:mysql://192.168.171.101:3306/mycat_01?useSSL=false&characterEncodin g=UTF-8&useJDBCCompliantTimezoneShift=true", "user":"root", "password":"123456" } */;
如果没有修改自己的参数,重新更正,然后在执行一次即可
-
可以通过命令查看添加的数据源
/*+ mycat:showDataSources{}*/;
-
添加集群信息
/*! mycat:createCluster{"name":"dataSource","masters":["rwSepw"],"replicas":["rwSepr"]} */;
-
查看集群信息
/*+ mycat:showClusters{} */;
-
也可以在虚拟机中查看相关配置信息
cd mycat/conf/clusters/ vim dataSource.cluster.json
-
重启MyCat,测试
cd /mycat/bin ./mycat restart
-
因为binlog的日志格式为STATEMENT,根据特性,使用insert插入 @@hostname 时,主库与从库所插入的内容会不一样,所以在查询时会有不一样的结果。
-
执行sql插入语句,并查询测试
insert into user(name) values(@@hostname); select * from user where id = 2;
-
其他章节 -> 跳转
end...