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--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="" dataNode="dn1">

</schema>

<schema name="testdb1" checkSQLschema="false" sqlMaxLimit="" dataNode="dn2">

</schema>

<dataNode name="dn1" dataHost="hostM1" database="test" />

<dataNode name="dn2" dataHost="hostM1" database="test1" />

<dataHost name="hostM1" maxCon="" minCon="" balance="" writeType="" dbType="mysql" dbDriver="native" switchType=

"" slaveThreshold="">

<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 @@heartbeat\G

查看前端连接状态

show @@connection\G

#查看后端状态

show @@backend\G

#查看数据库资源状态

show @@datasource

主节点端:创建用户

grant all on *.* to testuser1@'%' identified by 'testuser1';

grant all on *.* to testuser2@'%' identified by 'testuser;
05-29 00:11