MyCat学习:使用MySQL搭建主从复制(双主双从模式)
首先,上一篇我们建立了一主一丛模式的MySQL读写分离 点击这里 那么接下来,我们搭建双主双从模式的读写分离,并且使用MyCat登录访问
原理:master1,master2,slave1,slave2 —> master1 和 slave1主从复制,master2 和 slave2主从复制,同时 master2 做为master1的从机,进行互备主从
当然,如果你之前没有搭建过主从复制,下面这两步骤可以不需要做
- 首先需要清除当前之前设置的主从模式,删除testdb数据库
- stop slave; reset master;(可以主机从机都执行)
一、master1配置文件:
server-id=1 # 定义服务器唯一ID
log-bin=mysql-bin # 启用二进制日志
binlog-ignore-db=mysql # 忽略 mysql 库(如果配置了binlog-do-db的话可以不需要设置这个)
binlog-do-db=testdb # 设置需要主从复制的库
binlog_format=STATEMENT
log-slave-updates # 在做为从数据库的时候,有写入的操作也需要记录下二进制日志文件
auto-increment-increment=2 #表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是1~65535
auto-increment-offset=1 # 表示自增字段从哪个数开始,一次递增多少,取值范围是 1~65535
二、master2配置文件:
server-id=3
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-do-db=testdb
binlog_format=STATEMENT
log-slave-updates
auto-increment-increment=2
auto-increment-offset=2 # 注意起始值不一样
三、slave1配置文件:
server-id=2
relay-log=mysql-relay
四、slave1配置文件:
server-id=4
relay-log=mysql-relay
五、双主机,双从机重启 mysql 服务
六、主机从机都必须关闭防火墙
七、在两台主机上建立账户并授权 slave
create user 'slave'@'%' identified by 'qkm19981013';
grant replication slave on *.* to 'slave'@'%';
flush privileges;
八、查看 master1 的主机状态,记录下binlog日志文件名和position点的值,在slave1上执行以下语句:
change master to master_host='192.168.0.12',master_port=3307,master_user='slave',master_password='qkm19981013',master_log_file='mysql-bin.000001',master_log_pos=156;
九、查看 master2 的主机状态,记录下binlog日志文件名和position点的值,在salve2上执行以下语句:
change master to master_host='192.168.0.12',master_port=3309,master_user='slave',master_password='qkm19981013',master_log_file='mysql-bin.000001',master_log_pos=156;
十、在slave1和slave2上开启主从复制
start slave;
show slave status\G;
十一、最后一步,搭建 master1和master2的互备主从,即master1复制master2,master2复制,master1:
master1设置master2为主机:
change master to master_host='192.168.0.12',master_port=3309,master_user='slave',master_password='qkm19981013',master_log_file='mysql-bin.000001',master_log_pos=156;
start slave;
show slave status\G;
master2设置master1为主机:
change master to master_host='192.168.0.12',master_port=3307,master_user='slave',master_password='qkm19981013',master_log_file='mysql-bin.000001',master_log_pos=156;
start slave;
show slave status\G;
最后的效果就是,我们在 master1上面建立 testdb 数据库之后,其他三个MySQL都同步建立 testdb 数据库了,接着再建立 mytbl 表,其他三个也都建立,往表中插入 insert into mytbl values(1, @@hostname); 之后出现了四个数据库的数据不一致,@@hostname是系统变量,每个系统不一样,所以不同,这也验证了bin-log默认的格式是复制 SQL 语句这一说法。
需要注意的一点
mysql 8.0 默认使用 caching_sha2_password 身份验证机制 —— 从原来的 mysql_native_password 更改为 caching_sha2_password。
从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password 。
所以在 slave 连接 master的时候,show slave status\G; 可能会出现:authentication plugin 'caching_sha2_password’的异常,这是因为MySQL8.0之后改变了密码验证器,我们只需要把在主机建立的授权用户的密码验证器改成mysql_native_password就好了,语句如下:
ALTER USER 'slave'@'192.168.0.12' IDENTIFIED WITH mysql_native_password BY 'qkm19981013';
MyCat登录访问
balance 设置成 1,再添加上 写主机信息
<dataHost name="host1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="192.168.0.12:3307" user="root" password="qkm19981013"><readHost host="hostS1" url="192.168.0.12:3308" user="root" password="qkm19981013"/></writeHost><writeHost host="hostM2" url="192.168.0.12:3309" user="root" password="qkm19981013"><readHost host="hostS2" url="192.168.0.12:3310" user="root" password="qkm19981013"/></writeHost></dataHost>
MyCat学习:使用MySQL搭建主从复制(双主双从模式)相关推荐
- 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变...
[Mysql主从复制] 解决的问题 数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了. 负载均 ...
- MySQL 学习 - Replication集群 - 搭建 - 双主双从
前言 我们这里说的是双主双从集群搭建,当然这个是看你实际业务,说白了一点 两个主节点双向同步,A集群挂掉时,B集群因为双向同步,立即可以开始工作,实现高可用 基本原理 具体流程 主库将变更写入到主库的 ...
- MySQL主从复制配置过程(双主双从模式)
环境准备 为了搭建MySQL数据库主从复制(双主双从模式),准备一下四台服务器,并明确了各节点的角色及IP地址. 角色 IP地址 节点名称 Master1 192.168.67.140 CentOS0 ...
- mycat与mysql proxy_高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)...
既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 环境 centos6.4 ...
- MyCat实现MySQL读写分离(双主双从多库)
在数据库集群架构中,主数据库负责处理事务性查询(写入操作),而从数据库只负责处理select查询(读操作),这样可以提高数据库整体读写性能.主数据库另外一个功能就是负责将数据变更同步到从数据库中. 读 ...
- Mycat实现Mysql的一主一从和双主双从读写分离
前提是: 已经有了一主一从的Mysql服务架构. 已经安装启动好了mycat.并对mycat有一定了解. 实现 修改mycat的schema配置文件: <!--schema 标签用于定义 MyC ...
- 搭建Mysql双主双从报错The slave I/O thread stops because master and slave have equal MySQL server UUIDs(已解决)
搭建Mysql双主双从报错The slave I/O thread stops because master and slave have equal MySQL server UUIDs 具体问题 ...
- MySQL学习四:MySQL双主双从
文章目录 一.MySQL双主双从配置开启二进制日志 二.[配置每一台MySQL服务器的配置文件my.cnf](https://blog.csdn.net/huiguo_/article/details ...
- MySQL之主从复制(双主双从)
MySQL一主一从点击跳转 MySQL双主双从原理: master 1 为处理写请求: master 2 和 两个从机(slave1,slave2)负责读请求: 当master 1 宕机时,由mast ...
最新文章
- 面试官:兄弟,说说 ArrayList 和 LinkedList 有什么区别
- springboot + mysql + mybatis配置
- java通用编码规范考试_《java编码规范考试题答案》.doc
- java8自定义收集器_使用自定义收集器进行Java 8分组?
- leetcode29. 两数相除(位运算)
- Bash字符串处理(与Java对照) - 18.格式化字符串
- go validator使用教程
- Python实例讲解 -- wxpython 最小到托盘及欢迎图片
- 用开源代码如何建立网站_在开源上建立自举业务
- 引入方式之外部样式表(CSS、HTML)
- backup exec删除备份文件
- Arcgis 10.2 软件安装教程
- 北京航天大学考研计算机科学与技术分数线,北京航空航天大学计算机科学与技术考研...
- Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes解决办法
- 2月14,情人节双语送祝福!
- no more duplicates will be shown
- Java由今天的日期得到前几天的日期
- 从“蛙步”到“雁行”vivo的新周期与新常态
- TCP/ip 协议端口范围 详解
- nodejs websocket 实现简易聊天室功能