3、读写分离---一主一从(mycat)

通过 Mycat 和 MySQL 的主从复制配合搭建数据库的读写分离,实现 MySQL 的高可用性

一主一从

mysql的配置

一个主机用于处理所有写请求,一台从机负责所有读请求

① MySQL 主从复制原理

从从机的接入点开始复制数据

发生IO会有延时性特点

Relaylog:中继日志

②主机配置文件192.168.43.87

#主服务器唯一ID
server-id=1
##启用二进制日志
log-bin=mysql-bin
## 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
##binlog-ignore-db=information_schema
##设置需要复制的数据库
binlog-do-db=testdb
##设置logbin格式
binlog_format=STATEMENT

binlog三种格式:

③ 从机配置192.168.43.132

#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay

④ 主机、从机重启 MySQL 服务

⑤ 主机从机都关闭防火墙

⑥ 在主机上建立帐户并授权 slave (权限)

mysql> GRANT REPLICATION SLAVE ON *.* TO ‘slave‘@‘%‘ IDENTIFIED BY ‘123123‘;
Query OK, 0 rows affected (0.02 sec)

查询主机的状态

#记录下File和Position的值

#执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化

⑦ 在从机上配置需要复制的主机

CHANGE MASTER TO MASTER_HOST=‘主机的IP地址‘,

MASTER_USER=‘slave‘,

MASTER_PASSWORD=‘123123‘,(密码在中设置)

MASTER_LOG_FILE=‘mysql-bin.具体数字‘,MASTER_LOG_POS=具体值;

#启动从服务器复制功能

start slave;

#查看从服务器状态

show slave status\G;

注意:

如果已经连接主机需要进行重置

stop slave;

reset master;

⑧ 主机新建库、新建表、insert 记录,从机复制

此时创建的数据库必须是testdb  中设置属性

主机中创建数据表以及插入数据

mysql> use testdb;
Database changed
mysql> create table mytbl(id int,name varchar(20));
Query OK, 0 rows affected (0.12 sec)

插入数据

从机中进行查询数据

⑨ 停止从服务复制功能

stop slave;

⑩ 重新配置主从

stop slave;

reset master;

mycat配置

schema.xml

启动Mycat

登陆mycat进行查询数据

验证读写分离

1、在写主机插入:insert into mytbl values (1,@@hostname);主从主机数据不一致了

主机:

从机:

2、在Mycat里查询:select * from mytbl;

3、修改<dataHost>的balance属性,通过此属性配置读写分离的类型

负载均衡类型,目前的取值有4 种:

(1)balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。

(2)balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,

    简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。企业开发

(3)balance="2",所有读操作都随机的在 writeHost、readhost 上分发。

(4)balance="3",所有读请求随机的分发到 readhost 执行,writerHost 不负担读压力,企业开发

再次进行查询

数据就会进行随机机器查询

原文地址:https://www.cnblogs.com/Mrchengs/p/12263829.html

时间: 2024-11-02 15:44:23

3、读写分离---一主一从(mycat)的相关文章

mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

主要思路 测试环境 实现mysql主备复制 配置A主mysql 配置B备mysql 验证同步配置结果 验证是否同步 关闭B备mysql的同步,验证读写分离 实现读写分离 安装mycat 配置mycat 启动mycat 测试读写分离 验证是否同步 关闭B备mysql的同步,验证读写分离 数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了常用的读写分离方式,

mysql与mycat搭建实现集群与读写分离

数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了常用的读写分离方式,推荐mycat,社区活跃,性能稳定. 测试环境 MYSQL版本:Server version: 5.5.53,到官网可以下载WINDWOS安装包. 注意:确保mysql版本为5.5以后,以前版本主备同步配置方式不同. linux实现思路类似,修改my.cnf即可. A主mysql.19

Mysql mycat读写分离

Mysql mycat读写分离: 下载网址:http://dl.mycat.ioMycat官方网址:http://mycat.org.cn 说明:10.0.1.2为mycat服务器,10.0.1.3.10.0.1.4为mysql服务器 yum install java-1.8.0-openjdk tar zxfv Mycat-server-1.6.7.5-test-20200109231555-linux.tar.gz -C /space/ 配置读写分离: vi /space/mycat/con

MyCat实现读写分离+分库分表+全局表

前言 mycat功能强大,配置简单,作为数据库中间件,是一个非常优秀的开源产品,关于MyCat的部署安装,可以参考博文:MyCat部署安装. 本博文将展示mycat的如下功能: 读写分离: 分库分表: 全局表: 环境如下: 系统 IP 主机名 服务 Centos 7.5 192.168.20.2 mysql01 MySQL 5.7.24 Centos 7.5 192.168.20.3 mysql02 MySQL 5.7.24 Centos 7.5 192.168.20.3 mysql03 MyS

mysql+myca搭建稳定高可用集群,负载均衡,主备复制,读写分离

数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了常用的读写分离方式,推荐mycat,社区活跃,性能稳定. 测试环境 MYSQL版本:Server version: 5.5.53,到官网可以下载WINDWOS安装包. 注意:确保mysql版本为5.5以后,以前版本主备同步配置方式不同. linux实现思路类似,修改my.cnf即可. A主mysql.19

构建读写分离的数据库集群

4.1实战案例——构建读写分离的数据库集群 使用Mycat作为数据库中间件服务构建读写分离的数据库集群 使用一台虚拟机部署Mycat数据库中间件服务,将用户提交的读写操作识别分发给相应的数据库 节点.这样将用户的访问操作.数据库的读与写操作分给3台主机,只有数据库集群的主节点接 收增.删.改SQL语句,从节点接收查询语句,分担了主节点的查询压力 基础准备 使用CentOS 7.2系统,创建3台虚拟机进行实验. 其中2台虚拟机db1和db2部署MariaDB数据库服务,搭建主从数据库集群:一台作为

MyCAT部署及实现读写分离(转)

MyCAT是mysql中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之.于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显.这篇文章主要是MyCAT的入门部署. 一.安装java 因Mycat是用java开发的,所以需要在实验环境下安装java,官方建议jdk1.7及以上版本 Java Oracle官方下载地址为: http://www.oracle.com/technetwork/java/javase/archive-139210.html 解压jdk

基于MYCAT的MYSQL主从与读写分离配置详解与示例

1.不使用Mycat托管MySQL主从服务器,简单使用如下配置:          <dataNodename="dn1" dataHost="localhost1" database="db1"/>          <dataNodename="dn2" dataHost="localhost1" database="db2"/>          <d

MyCAT实现MySQL的读写分离

在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如果数据库不小心挂掉了,则同时也意味着程序的不可用,而这对很多应用来说,并不能接受. 引入MySQL中间件能很好的对程序端和数据库进行解耦,这样,程序端只需关注数据库中间件的地址,而无需知晓底层数据库是如何提供服务. 作为当前炙手可热的MySQL中间件,MyCAT实现MySQL主从集群的读写分离