Mycat 实现 MySQL 主从架构的读写分离

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mycat 实现 MySQL 主从架构的读写分离相关的知识,希望对你有一定的参考价值。

本次实验基于上一个实验:Mycat+mysql集群耦合
链接:https://blog.51cto.com/14783377/2489450

实验背景:
虽然在上一个实验中已经在配置文件中,分配了读写主机;但是并没有真正实现读写分离功能



配置Mycat对MySQL主从集群的读写分离功能

1、修改< dataHost > 的balance属性,通过此属性配置读写分离的类型

1)先按 “Ctrl+C” 停止 Mycat 进程的运行
[root@CentOS-4 bin]#
[root@CentOS-4 bin]# ./mycat status
Mycat-server is running (12445).
[root@CentOS-4 bin]# “Ctrl+C” #停止Mycat运行
技术图片
[root@CentOS-4 bin]#
[root@CentOS-4 bin]# ./mycat status
Mycat-server is not running.
[root@CentOS-4 bin]#

2)修改 schema.xml
[root@CentOS-4 ~]#
[root@CentOS-4 ~]# cd /usr/local/mycat/conf/
[root@CentOS-4 conf]# vim schema.xml #编辑修改配置文件

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">;

    &lt;schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1" &gt;
    &lt;/schema&gt;
    &lt;dataNode name="dn1" dataHost="CentOS-4" database="testdb" /&gt;
    &lt;dataHost name="CentOS-4" maxCon="1000" minCon="10" balance="3"
                      writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"&gt;
            &lt;heartbeat&gt;select user()&lt;/heartbeat&gt;
            &lt;!-- can have multi write hosts --&gt;
            &lt;writeHost host="hostM1" url="192.168.18.103:3306" user="root"
                               password="Ctsi.2020"&gt;
                    &lt;!-- can have multi read hosts --&gt;
                    &lt;readHost host="hostS2" url="192.168.18.104:3306" user="root" password="Ctsi.2020" /&gt;
            &lt;/writeHost&gt;
    &lt;/dataHost&gt;

</mycat:schema>

[root@CentOS-4 conf]#
[root@CentOS-4 conf]#
技术图片

3)启动 Mycat 使配置生效
[root@CentOS-4 bin]#
[root@CentOS-4 bin]# ./mycat console
[root@CentOS-4 bin]#
[root@CentOS-4 bin]# ./mycat status
技术图片

此时就实现了对MySQL一主一从集群的读写分离

注:如果想实现对MySQL双主多从环境的读写分离,需要将 schema.xml 模块中 balance 的值设置成1即可

以上是关于Mycat 实现 MySQL 主从架构的读写分离的主要内容,如果未能解决你的问题,请参考以下文章

Mysql+Mycat实现数据库主从同步与读写分离

使用Mycat实现MySQL的分库分表读写分离主从切换

mysql主从同步+mycat读写分离+.NET程序连接mycat代理

基于Mycat中间件的MySQL读写分离

Mycat实现Mysql主从读写分离

高可用架构篇--MyCat在MySQL主从复制基础上实现读写分离