zoukankan      html  css  js  c++  java
  • mariadb读写分离

    mycat

      maraidb主从架构,是主负责写,从负责读,但前端如果没有调度器的话,是无法实现读写分离的。这就涉及到了中间站,它就是mycat。一定要在主从架构的基础之上实现读写分离。

    配置三台的主从架构后。

    mycat端配置:

    一、在hosts文件中添加(每台机器都添加)

    mycat:192.168.24.10
    
    hostM1:192.168.24.8
    
    hostM2:192.168.24.9

    二、需要安装java1.8版本或以上

    三、下载mycat源码包

    wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
    
    tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
    
    mv mycat /usr/local/

    四、vim /usr/local/mycat/conf/server.xml设置如下参数

    <user name="testuser1">
    
    <property name="password">testuser1</property>
    
    <property name="schemas">testdb,testdb1</property>
    
    </user>
    
    <user name="testuser2">
    
    <property name="password">testuser2</property>
    
    <property name="schemas">testdb,testdb1</property>
    
    <property name="readOnly">true</property>
    
    </user>

    #testuser1用来写的用户

    #testuser2用来读的用户

    #testdb是mycat是逻辑库

    五、vim /usr/local/mycat/conf/schema.xml配置(请先备份cp schema.xml schema.xml.bak,然后把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="1000" dataNode="dn1">
    
    </schema>
    
    <schema name="testdb1" checkSQLschema="false" sqlMaxLimit="1000" dataNode="dn2">
    
    </schema>
    
     
    
    <dataNode name="dn1" dataHost="hostM1" database="test" />
    
    <dataNode name="dn2" dataHost="hostM1" database="test1" />
    
    <dataHost name="hostM1" maxCon="2000" minCon="1" balance="1" writeType="1" dbType="mysql" dbDriver="native" switchType=
    
    "1" slaveThreshold="100">
    
    <heartbeat>select user()</heartbeat>
    
    <writeHost host="hostM1" url="192.168.24.8:3306" user="testuser1" password="testuser1">
    
    <readHost host="hostS1" url="192.168.24.9.:3306" user="testuser2" password="testuser2" />
    
    </writeHost>
    
    </dataHost>
    
    </mycat:schema>

    六、启动mycat服务

    /usr/local/mycat/bin/mycat start

    七、登录

    8066是管理端口

    9066是连接后端数据库的端口,默认是9066,登录该端口后直接用show @@datasource;语句即可查询主从库的读写状态

    mysql -h 192.168.24.10 -P8066 -utestuser1 -ptestuser1    (可以执行增删改查)
    
    mysql -h 192.168.24.10 -P9066 -utestuser1 -ptestuser1     (可以查看节点状态)

    查看心跳状态

    show @@heartbeatG

    查看前端连接状态

    show @@connectionG

    #查看后端状态

    show @@backendG

    #查看数据库资源状态

    show @@datasource

    主节点端:创建用户

    grant all on *.* to testuser1@'%' identified by 'testuser1';
    
    grant all on *.* to testuser2@'%' identified by 'testuser;
  • 相关阅读:
    2013年个人总结
    ASP.NET Core SignalR (一):SignalR 概述
    ASP.NET Core 中的配置 【上】
    .NET Core 服务器
    .NET Web 宿主(Web Host)【下】
    .NET Web 宿主(Web Host)【上】
    .NET 通用主机(Generic Host)
    ASP.NET Core中间件
    ASP.NET Core中的依赖注入【下】
    ASP.NET Core中的依赖注入【上】
  • 原文地址:https://www.cnblogs.com/shuaiyin/p/10962517.html
Copyright © 2011-2022 走看看