版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vbirdbest/article/details/83476292
一:mysql主从复制
二:Mycat配置
conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<system>
<property name="defaultSqlParser">druidparser</property>
<property name="mutiNodeLimitType">1</property>
<!-- mycat服务的端口号 -->
<property name="serverPort">8066</property>
<!-- mycat管理的端口号 -->
<property name="managerPort">9066</property>
</system>
<!-- 配置连接Mycat的用户名, 密码, 逻辑数据库名称 -->
<user name="root">
<property name="password">root123</property>
<property name="schemas">testdb</property>
</user>
<user name="guest">
<property name="password">guest123</property>
<property name="schemas">testdb</property>
<property name="readOnly">true</property>
</user>
</mycat:server>
conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="testdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dataNode1">
</schema>
<dataNode name="dataNode1" dataHost="dataHost1" database="db1" />
<dataHost name="dataHost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
<heartbeat>show slave status</heartbeat>
<writeHost host="hostMaster" url="172.16.128.152:3306" user="root" password="root123">
<readHost host="hostSlave1" url="172.16.128.153:3306" user="root" password="root123" />
</writeHost>
<writeHost host="hostSlave2" url="172.16.128.148:3306" user="root" password="root123" />
</dataHost>
</mycat:schema>
重启mycat
bin/mycat restart
三:数据库准备
-- 连接mycat,在mycat上创建数据库master、slave1、slave2都会创建db1数据库
mysql> CREATE DATABASE `db1` DEFAULT CHARACTER SET utf8mb4;
mysql> CREATE TABLE `tbl_order` (
`id` bigint(20) NOT NULL,
`order_code` varchar(25) DEFAULT NULL,
`user_id` bigint(20) DEFAULT NULL,
`amount` bigint(20) DEFAULT NULL,
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> INSERT INTO tbl_order(id, order_code, user_id, amount)VALUES(1, '20181027160000000001', 1, 100);
mysql> select * from tbl_order;
master
slave1
slave2
mycat 查询走从节点