三、搭建读写分离

我们通过 Mycat 和 MySQL 的主从复制配合搭建数据库的读写分离,实现 MySQL 的高可用性。
我们将搭建:一主一从、双主双从两种读写分离模式

1.搭建一主一从

一个主机用于处理所有写请求,一台从机负责所有读请求,架构图如下

1.1、 搭建 MySQL 数据库主从复制

① MySQL 主从复制原理

② 主机配置(host79)

修改配置文件:vim /etc/my.cnf

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

binlog 日志三种格式

③ 从机配置(host80)

修改配置文件:vim /etc/my.cnf
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay

④重启服务

⑤连接数据库在主机建立账户并授权

#在主机MySQL里执行授权命令
GRANT REPLICATION SLAVE ON . TO ‘slave’@’%’ IDENTIFIED BY ‘789123’;

⑥查看主机状态

show master status;
±-----------------±---------±-------------±-------------------------±------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±-----------------±---------±-------------±-------------------------±------------------+
| mysql-bin.000001 | 764 | mystudent | mysql,information_schema | |
±-----------------±---------±-------------±-------------------------±------------------+

记录file 和Position

⑦从机创建备机创建从主机地址用户名密码和开始复制的地方:

CHANGE MASTER TO MASTER_HOST=‘192.168.119.131’,
MASTER_USER=‘slave’, MASTER_PASSWORD=‘789123’,
MASTER_LOG_FILE=‘mysql-bin.000001’,MASTER_LOG_POS=764;

⑧启动从机

start slave;
查看从机状态:
Show slave status;(两个yes则配置好了)
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

⑨测试

1.主机创建配置的复制的库(create database mystudent)
2.创建表(ctreate table student…)
3.插入数据(insert into student values(…)…)
4.从机中查看库和表能有主机创建的数据。

⑩停止从机,重启主机

Stop salve;
Reset master;

1.2 修改 Mycat 的配置文件 schema.xml

1.2.1设置主从复制的库

#### ②修改的balance属性,通过此属性配置读写分离的类型 select user() ## 负载均衡类型,目前的取值有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 不负担读压力

③插入数据

insert into student1 values(‘5’,@@hostname); #设置不一样的主机名详情请看:
#https://blog.csdn.net/qq_32077121/article/details/103754110,这样主从表就不一样了

④启动mycat,查看表中数据,会发现随机读主机和从机的数据不一样。

mycat主从复制配置相关推荐

  1. 基于mysql的主从复制之Mycat简单配置和高可用

    what-mycat 1.Mycat就是MySQL Server,而Mycat后面连接的MySQL Server,就好象是MySQL的存储引擎,如InnoDB,MyISAM等. 因此,Mycat本身并 ...

  2. 【Mycat】Mycat主从复制,垂直分库

    1. 什么是Mycat. Mycat是数据库中间件,所谓中间件,是一类连接软件组件和应用的计算机软件,以便软件各部件之间的通信. 例如 tomcat,web的中间件.而数据库中间件是连接Java应用程 ...

  3. 主从配置_MySQL主从复制配置详解

    MySQL版本5.5.58 第一步配置主机 主机配置如下: server-id = 1 #服务器id (主从必须不一样) log_bin = mysql-bin #打开日志(主机需要打开), 这个my ...

  4. MySQL主从复制配置过程(一主一从模式)

    1.概述 MySQL 的主从复制又叫 Replication.AB 复制.至少需要两个 MySQL 服务(可以是同一台机器,也可以是不同机器之间进行). 比如A服务器做主服务器,B服务器做从服务器,在 ...

  5. MySQL5.6 主从复制配置

    2019独角兽企业重金招聘Python工程师标准>>> MySQL5.6 主从复制配置 转自本人独立博客:http://www.wangboak.com/2014/10/mysql5 ...

  6. mysql之数据库主从复制配置报错1677

    mysql之数据库某表字符集和数据库字符集不一致导致主从复制配置报错1677 mysql数据库中某张表字符集是utf8而my.cnf设置的数据库的字符集是utf8mb4,导致在配置主从复制时,报如下错 ...

  7. Mysql 8主从复制配置图解

    Mysql 8主从复制配置图解 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理.本文主要介绍mysql的主从的配置. 注:1 当前主服务 ...

  8. rhel6系统中,mysql 5.6复制新特性下主从复制配置[基于GTID]

    1.mysql5.6在复制方面的新特性: (1).支持多线程复制:事实上是针对每个database开启相应的独立线程,即每个库有一个单独的(sql thread).针对这样的改进,如果我们想实现多线程 ...

  9. mysql主从配置 51cto_Mysql主从复制配置

    Mysql主从复制配置 本文只是介绍安装和配置,关于一些名词和原理,请参考mysql手册. Mysql的复制最少需要两台mysql服务器,一台主(主机名master,ip为192.168.20.204 ...

最新文章

  1. C++ 笔记(06)— 变量作用域(局部变量、全局变量、静态局部变量)
  2. FPGA设计心得(1)真双口RAM使用及其仿真问题记录
  3. C++类模板template <class T>简单使用方法
  4. 【转】RNN、LSTM、Transformer、BERT简介与区别
  5. Groovy全攻略--嵌入篇
  6. 配置java时找不到匹配项,检索项目的父项时出错:找不到与给定名称匹配的资源...
  7. vue 共用新增和修改验证分离
  8. paip.uapi 获取网络url内容html 的方法java php ahk c++ python总结.
  9. Mendix中Rest服务使用-调取服务器接口
  10. 字符串进阶——谈谈后缀全家桶(1) 后缀树
  11. 笔记本升级win10后键盘失灵解决办法
  12. Horner法则(霍纳法则)及其C语言描述
  13. linux安装Openssl步骤详解_问题:OpenSSL: error:100AE081:elliptic curve routines:EC_GROUP_new_by_curve_name:un
  14. 华为汽车BU业务布局及分析框架
  15. mysql数据模型三要素_E-R模型的三要素为实体、属性、联系-智慧树数据库原理章节答案...
  16. oracle基础教学:如何设置外键
  17. 如何锁自己的台式计算机,台式机键盘如何解锁
  18. 长安大学计算机考研难度如何,长安大学考研难吗?一般要什么水平才可以进入?...
  19. MATLAB之rand、randn、randi和randperm
  20. Unity -- 按钮的使用

热门文章

  1. js中的with()用法
  2. 什么是嵌入式软件工程师?需具备哪些能力?
  3. 电感电容电解电容测量仪
  4. 基于Android平台的个人时间管理系统的设计与实现
  5. Teamcenter RAC 调用查询
  6. Java实现简单的台球桌游戏
  7. SQL学习(二)——SELECT COUNT GROUP BY HAVING
  8. MySQL学习笔记-约束以及修改数据表
  9. 一致性哈希算法原理及其在分布式系统中的应用
  10. 无法卸载 Vivado 2015.3,提示找不到msvcp110.dll