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;

mariadb读写分离的更多相关文章

  1. 基于Keepalived高可用集群的MariaDB读写分离机制实现

    一 MariaDB读写分离机制 在实现读写分离机制之前先理解一下三种主从复制方式:1.异步复制:MariaDB默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库 ...

  2. 基于Mysql-Proxy 实现MariaDB 读写分离

    一.Mysql-Proxy 简单介绍 MySQL-Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测.分析或改变它们的通信.它使用灵活,没有限制,常见的用途包 ...

  3. MySQL/MariaDB读写分离配置

    DB读写分离描述 数据库的读写分离其实就是为了加减少数据库的压力:数据库的写入操作由主数据库来进行,读取操作由从数据库来进行操作.实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mys ...

  4. django+centos+mariadb读写分离完美实现(上)-mysql主从备份实现

    首先画图一张,用来展示今天要做的事情,读写分离,个人理解就是使用mysql主从备份的原理,让两个数据库同时为自己提供服务.其中主库负责数据保存,从库负责数据展示,可以一主一从,也可以一主多从.从而降低 ...

  5. MariaDB MyCat实现读写分离(15)

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...

  6. MariaDB 10 (MySQL DB) 多主复制并实现读写分离

    ----本文大纲 简介 资源配置 拓扑图 实现过程 ==================== 一.简介 MMM 即Master-Master Replication Manager for MySQL ...

  7. Mariadb 基于Mycat实现读写分离

    环境:Mariadb主:192.168.200.129 Mariadb从:192.168.200.114 Mycat    :192.168.200.112 (1)      安装jdk,先查看本机是 ...

  8. MariaDB主从复制和读写分离

    一.基础环境 二.配置MariaDB服务 1.安装MariaDB # yum install -y mariadb mariadb-server # systemctl start mariadb # ...

  9. MySQL/MariaDB数据库的PROXY实现读写分离

    MySQL/MariaDB数据库的PROXY实现读写分离 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ProxySQL概述 1>.各家互联网公司读写分离的解决方案 m ...

随机推荐

  1. Electron对JQuery的支持问题

    最近在了解Electron框架写应用,偶然发现在html中使用<script src="./jquery.js"></script>这种方式引入JQuery ...

  2. kotlin之基本数据类型

    数据类型                       占用字节数 Double 8 Float 4 Long 4 Int 4 Short 2 Byte 1 数据类型之间的转换 toByte():转换为 ...

  3. nodejs之express静态路由、ejs

    1.静态路由与ejs使用 /** *1.安装ejs npm install ejs --save-dev * *2.express 里面使用ejs ,安装以后就可以用,不需要引入 * *3.配置exp ...

  4. flutter 网络请求以及数据处理

    网络请求使用FutureBuilder来处理 import 'dart:convert'; Widget build(BuildContext context) { return FutureBuil ...

  5. prism 4 模块配置 管理

    本章导读: 第四章讲述了模块化应用程序开发中模块的生命周期,生成方法,实例引用的存活时间等关键内容,和经常会应用到的包含定义模块在内的7种场景(以Unity为例,也说明了MEF与Unity中可能不同的 ...

  6. linux(centOS7)的基本操作(四) 定时任务——crontab

    概述 对于Java开发人员,定时任务并不陌生,无非是让系统在特定时间执行特定的命令或程序.例如spring提供的@Scheduled注解.OpenSymphony提供的quartz框架,都可以实现定时 ...

  7. Java学习笔记之ArrayList基本用法

    原文地址,转载请注明出处:https://blog.csdn.net/GongchuangSu/article/details/51514389 ArrayList简介 ArrayList是一个其容量 ...

  8. Python学习之==>数组(一)

    1.定义数组 city = [] # 定义一个空数组 name = ['Jack','Panda','Bob','Franck'] # 根据下标找元素,最前面一个元素的下标是0,最后一个元素下标是-1 ...

  9. Python 的列表生成器

    列表生成器为创建列表提供了一种简洁的方式. 比如说,我们可以这样实现一个平方数列表 squares=[x**2 for x in range(10)] 或者这样迭代一个字符串来生成列表 >> ...

  10. java:Oracle(Jdbc的封装)和HTML(登录,注册,个人信息界面)

    1.Oracle Jdbc的封装: public class TestJdbc { // 把jdbc需要的属性,全部私有化 private static final String DRIVER = & ...