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--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读写分离的更多相关文章
- 基于Keepalived高可用集群的MariaDB读写分离机制实现
一 MariaDB读写分离机制 在实现读写分离机制之前先理解一下三种主从复制方式:1.异步复制:MariaDB默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库 ...
- 基于Mysql-Proxy 实现MariaDB 读写分离
一.Mysql-Proxy 简单介绍 MySQL-Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测.分析或改变它们的通信.它使用灵活,没有限制,常见的用途包 ...
- MySQL/MariaDB读写分离配置
DB读写分离描述 数据库的读写分离其实就是为了加减少数据库的压力:数据库的写入操作由主数据库来进行,读取操作由从数据库来进行操作.实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mys ...
- django+centos+mariadb读写分离完美实现(上)-mysql主从备份实现
首先画图一张,用来展示今天要做的事情,读写分离,个人理解就是使用mysql主从备份的原理,让两个数据库同时为自己提供服务.其中主库负责数据保存,从库负责数据展示,可以一主一从,也可以一主多从.从而降低 ...
- MariaDB MyCat实现读写分离(15)
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...
- MariaDB 10 (MySQL DB) 多主复制并实现读写分离
----本文大纲 简介 资源配置 拓扑图 实现过程 ==================== 一.简介 MMM 即Master-Master Replication Manager for MySQL ...
- Mariadb 基于Mycat实现读写分离
环境:Mariadb主:192.168.200.129 Mariadb从:192.168.200.114 Mycat :192.168.200.112 (1) 安装jdk,先查看本机是 ...
- MariaDB主从复制和读写分离
一.基础环境 二.配置MariaDB服务 1.安装MariaDB # yum install -y mariadb mariadb-server # systemctl start mariadb # ...
- MySQL/MariaDB数据库的PROXY实现读写分离
MySQL/MariaDB数据库的PROXY实现读写分离 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ProxySQL概述 1>.各家互联网公司读写分离的解决方案 m ...
随机推荐
- 一、基础篇--1.1Java基础-什么是java的序列化和反序列化
什么是序列化和反序列化 序列化:把堆内存中的java对象数据,通过某种方式把对象存储到磁盘文件或者传递给其他网络节点.这个过程称为序列化.简单来说呢,就是将对象转换成二进流的过程. 反序列化:把磁盘 ...
- BOSCH汽车工程手册————混合驱动
首先放一波资源,一千两百多页的pdf 链接:https://pan.baidu.com/s/15IsvHqOFCnqAKwY_SR4-lA提取码:6wmz 混合驱动 混合驱动有串联驱动并联驱动以及两种 ...
- 正向代理与反向代理以及Nginx【总结】(转)
今天在了解Nginx的时候,涉及到反向代理的问题,看到一篇博文写的清晰明了,转载记录一下,后续继续学习,再次感谢博主的分享. 原文地址:https://www.cnblogs.com/Anker/p/ ...
- ls | ethtool
ls -lhS *.mp4|awk '{if($5>4000000) print $0}'ls -lhS *.mp4|awk '{if(($5>100000) && ($5 ...
- 浏览器从输入URL到渲染出页面发生了什么
总体来说分为以下几个过程: 1. DNS解析 2. TCP连接 3. 发送HTTP请求 4. 服务器处理请求并返回HTTP报文 5. 浏览器解析渲染页面 6. 连接结束 参考资料:[https:// ...
- 根据输入的整数n使得输出精确到小数n位
#include<iostream> #include<stdio.h> using namespace std; int main(){ int a,b,c; while(t ...
- DateTime相关
1.string数据转成datetime DateTimeFormatter forPattern = DateTimeFormat.forPattern("yyyyMMddHH" ...
- cocos2dx基础篇(4) 标签CCLabel
[本节内容] cocos2dx三种文字字体的显示:CCLabelTTF(一般字体).CCLabelAtlas(自定义字体).CCLabelBMFont(自定义字体) CCLabelTTF CCLabe ...
- nginx配置laravel项目
在/etc/nginx/conf.d下新建一个laravel.conf文件,并编辑 写入如下文件即可 server { listen 80; server_name xxx; root "/ ...
- 【LeetCode】122、买卖股票的最佳时机 II
Best Time to Buy and Sell Stock II 题目等级:Easy 题目描述: Say you have an array for which the ith element i ...