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;

最新文章

  1. 解决 ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)异常
  2. PAT乙级 1003. 我要通过!(20)
  3. 记录一些容易忘记的属性 -- UIKeyboard
  4. [原创]C语言利用pcre正则表达式库
  5. 在Struts2中使用poi进行excel操作下载的时候报getOutputStream() has already been called for this response 错误 [转]
  6. CentOS系统通过PXE实现批量无人值守安装
  7. MySQL5.7下修改root密码
  8. Python数据结构应用3——链表
  9. RecycleView的notifyItemRemoved使用注意
  10. 从零学习Fluter(二):win10上环境搭建以及模拟器和真机调试
  11. [物理学与PDEs]第1章第9节 Darwin 模型 9.2 Maxwell 方程组的一个定解问题
  12. Java Spring Boot VS .NetCore (二)实现一个过滤器Filter
  13. eclipse 中 大小写切换:ctrl+shift+x 转为大写 ctrl+shift+y 转为小写
  14. ArrayMap代替HashMap
  15. 求助:将以下ES5格式代码转换为ES6格式!!!
  16. ThinkPHP实现事务回滚示例代码
  17. 64位系统下同时使用64位和32位的eclipse
  18. 【Networking】(转)一个非常好的epoll+线程池服务器Demo
  19. JQuery获取和设置Select选项的常用方法总结
  20. CentOS7关闭默认防火墙启用iptables防火墙

热门文章

  1. java实现二分法查找
  2. 使用多块GPU进行训练 1.slim.arg_scope(对于同等类型使用相同操作) 2.tf.name_scope(定义名字的范围) 3.tf.get_variable_scope().reuse_variable(参数的复用) 4.tf.py_func(构造函数)
  3. Android Context完全解析与各种获取Context方法
  4. 使用bloomfilter
  5. 学习笔记 - Git
  6. 【5】标题上的小logo
  7. zabbix服务端安装
  8. java 接口default的判断规则
  9. cosbench 安装
  10. [开发技巧]&#183;Python实现信号滤波(基于scipy)