mycat 读写分离

安装jdk

参考 http://blog.csdn.net/baogeda/article/details/78414134

下载mycat,解压到/usr/local目录

事先配置好mysql的主从复制。

配置conf/server.xml

<property name="useSqlStat">1</property>  <!-- 1为开启实时统计、0为关闭 -->
<!--这个地方默认为0,改成1,如果不改,mycatweb监控中sql监控不起作用-->
      <user name="root">
              <property name="password">123456</property>
              <property name="schemas">Test1</property>
<!--(有多个数据库可以添加多个逻辑库)逻辑库,这里的逻辑库名要和schema.xml里名字一致-->
      </user>

      <user name="user">
              <property name="password">user</property>
              <property name="schemas">Test1</property>
              <property name="readOnly">true</property>
      </user>

配置conf/scheam.xml

<schema name="Test1" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>

配置逻辑库,name必须与server.xml相同,dataNode为物理节点,要与下面的dataNode的name属性一致。
<dataNode name="dn1" dataHost="localhost1" database="Test1" />
物理节点dataHoset为下面dataHost的标识,两处要一致。database为物理数据库
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="2" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>show slave status</heartbeat>
        心跳语句,不同的switchType心跳语句不同,详见下文描述
        <!-- can have multi write hosts -->

        <writeHost host="hostM1" url="192.168.101.148:3306" user="root" password="">
        写节点,ip,用户,密码    。           

                <readHost host="hostS1" url="192.168.101.147:3306" user="root" password="123456" />
                读节点,ip,用户,密码。
                <readHost host="hostS2" url="192.168.101.149:3306" user="root" password="123456" />
        </writeHost>
        <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
多个写节点的情况下配置多个writehost
</dataHost>

这里需要注意的是 balance, switchType, writeType
balance指的负载均衡类型,目前的取值有4种:

balance=”0”, 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
balance=”1”,全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。
balance=”2”,所有读操作都随机的在writeHost、readhost上分发。
balance=”3”,所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力

writeType表示写模式

writeType=”0”,所有的操作发送到配置的第一个writehost
writeType=”1”,随机发送到配置的所有writehost
writeType=”2”,不执行写操作

switchType指的是切换的模式,目前的取值也有4种:

switchType=‘-1‘ 表示不自动切换
switchType=‘1‘ 默认值,表示自动切换 心跳语句为 select user()。此处小心配置,被坑过一次
switchType=‘2‘ 基于MySQL主从同步的状态决定是否切换,心跳语句为show slave status
switchType=‘3‘基于MySQL galary cluster的切换机制(适合集群),心跳语句为show status like ‘wsrep%‘。

mycat命令

完成后进入bin文件,

./mycat start 启动mycat
./mycat stop 关闭mycat
./mycat status 查看mycat运行状态。

端口

mycat有两个端口,一个是8066,一个是9066,其中9066是管理端口,8066是数据端口,我之前一直登录管理端口,show tables;时不能成功执行,后来才 发现登录8066才行。

客户端链接mycat与链接mysql方式一样。不过端口不是默认的3306,而是8066

mysql -h 127.0.0.1 -u root -p -P8066


  • 启动时报:Startup failed: Timed out waiting for a signal from the JVM.

可修改conf/wrapper.conf中设置如下参数:
设置超时时间为2小时wrapper.startup.timeout=7200
设置心跳超时时间为1小时wrapper.ping.timeout=3600

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值