发布时间:2024-02-05 16:00
Mycat安装包点这里获取
解压到合适的目录下:
修改conf目录下的server.xml和schema.xml配置文件:
①修改server.xml配置
vim打开server.xml拉到底部默认有两个user的配置:
123456
test
123456
test
true
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
schema>
<dataNode name="dn1" dataHost="datahost1" database="test" />
<dataHost name="datahost1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()heartbeat>
<writeHost host="hostM1" url="124.***.**.158:3306" user="root"
password="[写库的免密]">
<readHost host="hostS2" url="124.***.**.119:3306" user="root" password="[读库的密码]" />
writeHost>
dataHost>
mycat:schema>
使用Navicat连接mycat:
这里我使用mycat的server.xml中配置的读写账号root进行登录mycat
在mycat上创建一张表student:
CREATE TABLE `student` (
`id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '学号',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '姓名',
`grade` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '年级',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
在mycat连接上往student表中插入一条数据:
在mycat执行插入语句后可以看到写库和读库都有了insert语句,但是仔细观察这两个insert语句是有区别的,写库的insert语句是mycat读写分离写进去的,但是读库的insert是主从复制功能从写库的bin-log同步过来的,两个insert是不同的。
接下来在mycat上执行一条select语句查询刚刚插入的数据:
对比读库和写库的日志,可以发现select语句只在读库的日志中出现了,也就是说通过mycat进行查询时查询的是我们配置的读库(如果有需要mycat也可以配置读库和写库分担select压力,具体配置方法需要继续研究)
这样中间件mycat就帮助我们实现了MySQL的读写分离。
docker 打包 selenium+chromedriver+chrome 解决方案
我的Java Web之路 - Servlet(2)- 核心原理
Hugging Face创始人亲述:一个GitHub史上增长最快的AI项目
【酷炫烟花特效表白(Html5+CSS3+JS,带背景音乐哦!)】
Web3.0时代来了,看天翼云存储资源盘活系统如何赋能新基建(下)
Windows下MySQL 8.0.29 安装和删除图文教程
清华教授沈向洋:创新就要做到极致,用开源的方式培养未来的工程师
解决Mac下腾讯会议无法使用OBS等虚拟摄像头问题(不关闭SIP,适用M1)