时间:2021-07-01 10:21:17 帮助过:10人阅读
启动命名 start slave;

图上两个为Yes就大工告成。
二、配置myCat
mycat是一个数据库中间件,也可以理解为是数据库代理。在架构体系中是位于数据库和应用层之间的一个组件。
我下载的mycat是1.6.7.6版本的。下载完解压即可

读写分离只要配置server和schema就够了
打开conf找到以下两个文件
server配置连接MyCat的用户及权限
schemas里是逻辑库名 并非真实数据库名与schema的schema保持一致

schema配置

balance类型
0:不开启读写分离机制,所有读操作都发送到当前可用的writeHost上
1:全部的readHost与stand by writeHost参与select语句的负载均衡,
2:所有读操作都随机在writeHost、readHost上分发
3:所有读请求随机分发到writeHost对应的readHost执行,writeHost不负担读压力
<schema name="DB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">
<!-- auto sharding by id (long) -->
<!--splitTableNames 启用<table name 属性使用逗号分割配置多个表,即多个表使用这个配置-->
<!--fetchStoreNodeByJdbc 启用ER表使用JDBC方式获取DataNode-->
</schema>
<!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
/> -->
<dataNode name="dn1" dataHost="localhost1" database="真实数据库名" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<!-- <heartbeat>show slave status</heartbeat>-->
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<!-- 主库 增删改 -->
<writeHost host="hostM1" url="192.168.1.XXX:3307" user="root"
password="123456">
<!-- 从库 -->
<readHost host="hostS1" url="192.168.1.XXX:3307" user="root" password="123456"></readHost>
</writeHost>
<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
三、测试主从复制读写分离

127是我本地的mysql 也就是主库(master),185是从库(slave)
我在主库创建了一个demo表 ,然后复制过去从库了 刷新以下myCat-185的textedb就能看到。

在主从插入一条数据。

接着刷新从库,从库已经复制了主库的信息了

连接mycat进行测试 3066是我mycat的端口

在mycat插入一条数据

刷新127和185的数据库就能看到 都已经有数据了。
查询是不会查主库的 ,测试一下在从库添加一条数据。

这条数据是插在185数据库上的 ,在127数据库是没有的 使用mycat测试

ndows下 myCat+mySQL读写分离配置
标签:sql 本地 打开 随机 log-bin 业务 sql 语句 mysql 主从 远程连接