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.单管理节点 ...
随机推荐
- The First Week luckyzpp
一 ,LINUX系列有很多版本,只是我们很少去了解到更多,我们熟知红帽CentOS,Ubuntu,Debian, Kali, Rocky各种版本系列. 二 目前Linux 生产主流版本如下: C ...
- 优先队列PriorityQueue&Lambda&Comparator
今天翻阅<Labuladuo的算法小抄>时发现在使用优先队列的PriorityQueue解决一道hard题时(leetCode 23),出现了如下代码: ListNode mergeKLi ...
- git推送文件到gitee
注册gitee账号 设置姓名.个人空间地址 点击头像旁边的加号,新建仓库 安装git # 设置姓名和邮箱,姓名是注册gitee时设置的姓名,邮箱是注册gitee的邮箱 git config --glo ...
- Vue初体验(一)
每个 Vue 应用都需要通过实例化 Vue 来实现. 语法格式如下: var vm = new Vue({ // 选项 }) 接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: 可以看到在 V ...
- 关于IDEA无法加载main方法的bug
问题现象 main方法没有run按钮 问题解决 发现args显示灰色未调用,原来是之前莫名其妙调用了sun包下的String 删除调用问题解决!
- Redis中关于key的操作指令
1.keys: 例如: 2.exists 3.move 将指定的数据移动到指定的库 4.expire 5.tt1 6.type 7.rename 8.del
- vue-cli坑比系列
Error loading saved preferences: ~/.vuerc may be corrupted or have syntax errors. Please fix/delete ...
- Python - 面向对象编程 - 实战(4)
需求:士兵突进 士兵许三多有一把 AK47 士兵可以开火 枪能够发射子弹 枪装填子弹,可以增加子弹数量 需求分析 很明显有两个类:士兵类,枪类 AK47 是枪名,是枪类的属性,每把枪都有子弹数,所以子 ...
- SpringApplication启动-图解
- Haproxy搭建web集群
目录: 一.常见的web集群调度器 二.Haproxy应用分析 三.Haproxy调度算法原理 四.Haproxy特性 五.Haproxy搭建 Web 群集 一.常见的web集群调度器 目前常见的we ...