Mysql读写分离集群的搭建且与MyCat进行整合
1. 概述
老话说的好:不熟悉的东西不要不懂装懂,做人要坦诚,知道就是知道,不知道就是不知道。
言归正传,今天我们来聊聊 Mysql主从读写分离集群是如何搭建的,并且聊一下如何用 MyCat 去访问这个Mysql读写分离集群。
2. 场景介绍
服务器A IP:192.168.1.22
服务器B IP:192.168.1.12
服务器A 和 服务器B 都安装了Mysql,且初始化完成,关于Mysql在CentOS7的安装,可参见我的另一篇文章《MyCat的快速搭建》。
服务器B作为 Mysql 主服务,服务器A作为 Mysql 从服务器。
MyCat 安装在服务器A上。MyCat的安装也可参见我的另一篇文章《MyCat的快速搭建》。
3. Mysql主从读写分离集群的搭建
3.1 修改 服务器B(主)配置文件
# vim /etc/my.cnf

3.2 重启服务器B(主)的 Mysql 服务
# systemctl restart mysqld
3.3 修改 服务器A(从)配置文件
# vim /etc/my.cnf

3.4 重启服务器A(从)的 Mysql 服务
# systemctl restart mysqld
3.5 在 服务器B(主)上创建同步账号并授权
# mysql -u root -p
mysql> create user 'repl'@'%' identified by 'Zhuifengren@123456';
mysql> grant replication slave on *.* to 'repl'@'%';
mysql> flush privileges;
3.6 在 服务器B(主)上进行锁表操作
# mysql -u root -p
mysql> flush tables with read lock;
3.7 在 服务器B(主)上找到 log-bin 的位置
# mysql -u root -p
mysql> show master status;

3.8 将 服务器B(主)的 mysql 数据复制到 服务器A(从)
备份数据
# mysqldump --all-databases --master-data > dbdump.db -uroot -p
注意:刚才锁表的mysql客户端不要退出,重新开一个窗口!!!
传输数据文件
# scp dbdump.db root@192.168.1.22:/home
3.9 在 服务器A(从)还原 mysql 数据
# cd /home
# mysql < dbdump.db -uroot -p
注意:两台服务器mysql的版本务必一致,否则可能报错!!!
3.10 将 服务器B(主)上锁表操作取消
mysql> unlock tables;
3.11 在 服务器A(从)上设置主从同步配置
# mysql -u root -p
mysql> change master to
-> master_host='192.168.1.12',
-> master_user='repl',
-> master_password='Zhuifengren@123456',
-> master_log_file='zhuifengren_log.000001',
-> master_log_pos=1432;
mysql> start slave;
3.12 Authentication plugin 'caching_sha2_password' reported error 报错解决
如果发现主从数据没有同步,可以查看从库(服务器A)的同步日志
# cat /var/log/mysqld.log
如果有如下报错,则说明之前创建的 repl 账户密码加密方式有问题:
Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. Error_code: MY-002061
解决办法:
进入 服务器B(主)的mysql客户端,修改用户密码的加密方式
# mysql -u root -p
mysql> alter user 'repl'@'%' identified WITH sha256_password by 'Zhuifengren@123456';
mysql> grant replication slave on *.* to 'repl'@'%';
mysql> flush privileges;
然后进入 服务器A(从)重启主从同步
# mysql -u root -p
mysql> stop slave;
mysql> start slave;
问题解决!!!
4. MyCat 配置读写分离
4.1 在之前的基础上修改MyCat配置
# cd /home/mycat/conf
# vim schema.xml

其中 读库readHost 标签写在 写库writeHost 标签里面。
dataHost 标签中 balance 属性的含义如下:(摘抄自 MyCat 官网的权威指南)
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",所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力, 注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。
4.2 重启MyCat
# cd /home/mycat/bin
# ./mycat stop
# ./mycat start
5. 综述
今天聊了一下 Mysql 主从读写分离集群的搭建,以及 MyCat 如何整合 Mysql 读写分离集群,希望可以对大家的工作有所帮助。
欢迎帮忙点赞、评论、转发、加关注 :)
关注追风人聊Java,每天更新Java干货。
Mysql读写分离集群的搭建且与MyCat进行整合的更多相关文章
- Mysql双主双从高可用集群的搭建且与MyCat进行整合
1.概述 老话说的好:瞻前顾后.患得患失只会让我们失败,下定决心,干就完了. 言归正传,之前我们聊了Mysql的一主一从读写分离集群的搭建,虽然一主一从或一主多从集群解决了并发读的问题,但由于主节点只 ...
- KingbaseES R3 读写分离集群在线扩容案例
案例说明: 1. 通过sys_basebackup创建新备库. 2. 将备库加入到Cluster nodes管理,可以用kingbase_monitor.sh一键启停. 3. 主备复制切换测试. 此次 ...
- Redis集群的搭建及与SpringBoot的整合
1.概述 之前聊了Redis的哨兵模式,哨兵模式解决了读的并发问题,也解决了Master节点单点的问题. 但随着系统越来越庞大,缓存的数据越来越多,服务器的内存容量又成了问题,需要水平扩容,此时哨兵模 ...
- kingbaseES R6 读写分离集群修改ssh端口案例
数据库环境: test=# select version(); version ------------------------------------------------------------ ...
- Centos下Redis集群的搭建实现读写分离
Centos下Redis一主多从架构搭建 搭建目标:因为自己笔记本电脑配置较低的原因,模拟两台机器之间搭建一主一从的架构,主节点Redis主要用来写数据,数据写入到主节点的Redis,然后从节点就可以 ...
- centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课
centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数 ...
- Docker搭建MySQL主从集群,基于GTID
写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...
- Mysql 集群环境搭建
在上一篇文章中已经详细的写了关于Mysql的安装步骤.这一篇文章在上一篇文章的基础之上接着写集群的安装与部署. 安装地址:https://www.cnblogs.com/ming-blogs/p/10 ...
- 项目进阶 之 集群环境搭建(三)多管理节点MySQL集群
上次的博文项目进阶 之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案. 1.单管理节点 ...
随机推荐
- flink双流join
package com.streamingjoin import org.apache.flink.api.common.state.{ValueState, ValueStateDescriptor ...
- Helm on K8S
前言 容器的出现,标志着云原生的到来,Docker 基于 Linux 隔离.虚拟化等能力封装了应用:Kubernetes 的出现,建立了云原生时代的技术基础设施,它基于对容器的编排封装了集群:Kube ...
- reids在linux上的安装《四》
linux 安装redis 完整步骤 红色字体在我的Centos上没有设置,因为我设置了密码 安装: 1.获取redis资源 wget http://download.redis.io/release ...
- elsa core—3.elsa 服务
在本快速入门中,我们将介绍一个用于设置Elsa Server的最小ASP.NET Core应用程序.我们还将安装一些更常用的activities(活动),如Timer.Cron和sendmail,以能 ...
- 洛谷P2424 约数和 题解
题目 约数和 题解 此题可以说完全就是一道数学题,不难看出这道题所求的是 \(\sum\limits_{i=x}^{y}{\sum\limits_{d|i}{d}}\) 的值. 很显然,用暴力枚举肯定 ...
- shell脚本———双重循环——九九乘法表
1.基础双重循环模板 2.break跳出单个循环 3.continue中止某次循环中的命令,但不会完全中止整个命令 4.九九乘法表
- java版gRPC实战之三:服务端流
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 远程线程注入突破SESSION 0
远程线程注入突破SESSION 0 SESSION 0 隔离 在Windows XP.Windows Server 2003,以及更老版本的Windows操作系统中,服务和应用程序使用相同的会话(Se ...
- dedecms编辑器不能复制word格式的处理方法
在word文档中编辑一篇文章,格式段落都整理好后,粘贴到dede编辑器里面却发现,格式都无效了,可能dede有自己的打算,比如这样可以文章字体大小统一,样色统一,整体比较整洁.但是用惯了word编辑文 ...
- Jmeter系类(33) - JSR223(3) | java常用脚本
Json 相关 解析 Response import groovy.json.JsonSlurper def responseStr = prev.getResponseDataAsString() ...