使用MyCat进行MySql的读写分离

读写分离是在主从复制的基础上实现的

一:安装MyCat

MyCat下载完解压就能用,但是我们需要进行我们的配置

下载地址  http://dl.mycat.io

下载完成上传并解压就ok了

如果启动失败的的话可以查看logs/wrapper.log文件里的错误信息,百度一搜就可以解决了

我的MyCat安装在mysql主机上ip地址为192.168.118.4

二:配置MyCat

主要配置两个文件

servvice.xml里的东西备份之后,替换成下面的

<mycat:server xmlns:mycat="http://io.mycat/">
        <!-- 添加user -->
           <user name="mycat_master" defaultAccount="true">
            <property name="password">mycat_master</property>
            <property name="schemas">hehe</property>
           </user>
            
            <!-- 添加user -->
           <user name="mycat_slave">
            <property name="password">mycat_slave</property>
            <property name="schemas">hehe</property>
            <property name="readOnly">true</property>
           </user>

</mycat:server>

schema.xml里的东西备份之后,替换成下面的

<mycat:schema xmlns:mycat="http://io.mycat/">
<!--name 逻辑库名称  checkSQLschema忽略表前的数据名称-->
    <schema name="hehe" checkSQLschema="true" sqlMaxLimit="100" >    
    <!--name 表的名称 primaryKey主键 dataNode来自哪个数据库(并非真实数据库名称)-->
    <table name="t_users" primaryKey="user_id" dataNode="dn1"/>
    <table name="t_message" type="global" primaryKey="messages_id" dataNode="dn1" />
    </schema>
    <!--一个dataNode代表一个数据库-->
            <dataNode name="dn1" dataHost="jdbchost" database="weibo_simple" />
                 <dataHost name="jdbchost" maxCon="1000" minCon="10" balance="3"
              writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>  
                <!--主从机配置-->
                <writeHost host="hostMaster" url="192.168.118.4:3306" user="root" password="root"/>
                <writeHost host="hostSlave" url="192.168.118.5:3306" user="root" password="root"/>
            </dataHost>
</mycat:schema>

修改为启动mycat,位于安装路径的/bin目录下

./mycat start    #启动    
./mycat stop    #停止
./mycat restart  #重启

使用连接工具进行连接主机

 

 

 

 使用连接工具进行连接从机

 

 执行添加语句,报错

 

posted @ 2020-02-22 14:21  天戈  阅读(196)  评论(0编辑  收藏  举报