Mycat快速入门(五): Mycat读写分离案例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vbirdbest/article/details/83476292

一:mysql主从复制

在这里插入图片描述

参考 Centos7安装MySQL5.7和主从复制配置

二: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 查询走从节点
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/vbirdbest/article/details/83476292