当前位置: 首页 > news >正文

万江网站制作/重庆网站关键词排名

万江网站制作,重庆网站关键词排名,www 上海网站建设,网站建设实训该写哪些内容目录 环境准备 拉起容器节点 容器中安装用到的工具 配置hosts文件 安装插件 创建复制用户 my.cnf文件配置 master节点 slave1节点 slave2节点 启动MGR master节点 slave1节点 slave2节点 查看三个节点是否加入组内 问题分析 端口问题 端口参数配置问题 连接…

目录

环境准备

拉起容器节点

容器中安装用到的工具

配置hosts文件

安装插件

创建复制用户

my.cnf文件配置

master节点

slave1节点

slave2节点

启动MGR

master节点

slave1节点

slave2节点

查看三个节点是否加入组内

问题分析

端口问题

端口参数配置问题

连接到源服务器时用户名无效

hosts文件配置问题

slave节点执行的事务比组中存在的事务多


master

slave1

slave2

IP

172.17.0.5

172.17.0.6

172.17.0.7

VERSION

8.0.37

8.0.37

8.0.37

环境准备

拉起容器节点

#拉起master节点
docker run -itd --name mysql_mgr_master_8.0.37 -e MYSQL_ROOT_PASSWORD=123456 -p 3310:3306 -v /var/lib/docker/mysql-mgr-master-8.0.37:/var/lib/mysql 8279f68ee77d
#拉起slave1节点
docker run -itd --name mysql_mgr_slave1_8.0.37 -e MYSQL_ROOT_PASSWORD=123456 -p 3320:3306 -v /var/lib/docker/mysql-mgr-slave1-8.0.37:/var/lib/mysql 8279f68ee77d
#拉起slave2节点
docker run -itd --name mysql_mgr_slave2_8.0.37 -e MYSQL_ROOT_PASSWORD=123456 -p 3330:3306 -v /var/lib/docker/mysql-mgr-slave2-8.0.37:/var/lib/mysql 8279f68ee77d

容器中安装用到的工具

拉起三个节点后进入容器使用microndnf命令安装下面两个工具,等会配置的时候需要用到

microdnf install -y vim net-tools

配置hosts文件

三个节点都要配置

这里有个遗留问题,不知道为什么每次容器重启后hosts文件都会重置,导致MGR复制出错,详见问题分析

error log

Error connecting to source 'rep@fd8fe63cc738:3306'. This was attempt 1/1, with a delay of 60 seconds between attempts. Message: Unknown MySQL server host 'fd8fe63cc738' (-2)

#容器节点ip      #容器id
172.17.0.5      fd8fe63cc738
172.17.0.6      e5b0f9986741
172.17.0.7      6d570814d8bb

安装插件

三个节点中分别安装MGR插件

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

创建复制用户

创建用来复制的用户

create user 'rep'@'%' identified by '123456';
grant replication slave on *.* to 'rep'@'%' ;
flush privileges;

my.cnf文件配置

下面文件中使用的UUID随机生成就可以

select uuid();

master节点

port = 3306
bind-address = 0.0.0.0log-bin
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1#Plugin_dir=/usr/lib64/mysql/plugin#禁用二进制日志事件校验,MGR不支持带checksum的binlog event
binlog_checksum=NONEloose-group_replication_recovery_get_public_key=ON
loose-group_replication_recovery_use_ssl=ON#使用哈希算法
transaction_write_set_extraction=XXHASH64
#组复制的组名
loose-group_replication_group_name="ba3350b0-0abc-11f0-a872-0242ac110006"
#不自动启动组复制
loose-group_replication_start_on_boot=OFF
#本机地址和端口
loose-group_replication_local_address="172.17.0.5:33061"
#组中成员
loose-group_replication_group_seeds="172.17.0.5:33061,172.17.0.6:33061,172.17.0.7:33061"
#不启用引导组,手动引导启动
loose-group_replication_bootstrap_group=OFF

slave1节点

port = 3306
bind-address = 0.0.0.0log-bin
server-id=2
gtid_mode=ON
enforce_gtid_consistency=1binlog_checksum=NONE#这个参数决定primary节点到secondary节点的请求是否为基于 RSA 密钥对的密码交换所需的公钥
loose-group_replication_recovery_get_public_key=ON
loose-group_replication_recovery_use_ssl=ON
loose-group_replication_group_name="ba3350b0-0abc-11f0-a872-0242ac110006"
loose-group_replication_start_on_boot=OFFloose-group_replication_local_address="172.17.0.6:33061"
loose-group_replication_group_seeds="172.17.0.5:33061,172.17.0.6:33061,172.17.0.7:33061"
loose-group_replication_bootstrap_group=OFF

slave2节点

port = 3306
bind-address = 0.0.0.0log-bin
server-id=3
gtid_mode=ON
enforce_gtid_consistency=1binlog_checksum=NONEloose-group_replication_recovery_get_public_key=ON
loose-group_replication_recovery_use_ssl=ON
loose-group_replication_group_name="ba3350b0-0abc-11f0-a872-0242ac110006"
loose-group_replication_start_on_boot=OFFloose-group_replication_local_address="172.17.0.7:33061"
loose-group_replication_group_seeds="172.17.0.5:33061,172.17.0.6:33061,172.17.0.7:33061"
loose-group_replication_bootstrap_group=OFF

启动MGR

master节点

SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

slave1节点

#指定主从账户与指定通信频道
CHANGE MASTER TOMASTER_USER = 'rep',MASTER_PASSWORD = '123456'FOR CHANNEL 'group_replication_recovery';
#启动组复制
START GROUP_REPLICATION;

slave2节点

#指定主从账户与指定通信频道
CHANGE MASTER TOMASTER_USER = 'rep',MASTER_PASSWORD = '123456'FOR CHANNEL 'group_replication_recovery';
#启动组复制
START GROUP_REPLICATION;

查看三个节点是否加入组内

SELECT * FROM performance_schema.replication_group_members;

问题分析

端口问题

mysql没有监听tcp4的3306端口,导致MGR复制失,再配置文件中开启即可

port = 3306
bind-address = 0.0.0.0

端口参数配置问题

下面的这两个参数配置错误导致组成员无法加入复制组

loose-group_replication_local_address="172.17.0.5:3306"
loose-group_replication_group_seeds="172.17.0.5:3306,172.17.0.6:3306,172.17.0.7:3306"

修该端口号即可

loose-group_replication_local_address="172.17.0.5:33061"
loose-group_replication_group_seeds="172.17.0.5:33061,172.17.0.6:33061,172.17.0.7:33061"

连接到源服务器时用户名无效

这里报错是因为再指定主从账户与指定通信频道的时候还是使用了异步复制的那套配置,查看官方文档后发现这里其实是有区别的

https://dev.mysql.com/doc/refman/8.0/en/group-replication-adding-instances.html

但是这里改变之后又遇到了另一个问题,无法在通道“group_REPLICATION_recovery”上使用给定参数更改复制源,起初以为是复制通道名称的问题,但是换掉名称还是不行,后来查看官网后发现这里没有获取公钥的配置(GET_MASTER_PUBLIC_KEY = 1),去掉后果然成功了,但是为什么?

最初GET_MASTER_PUBLIC_KEY = 1是为了解决MySQL8.0中密码插件改变导致异步复制的时候slave节点使用rep复制账号连接失败的问题,但是为什么这里指定通道后会出现这个问题?(待分析)

error log

ERROR 3139 (HY000): CHANGE REPLICATION SOURCE with the given parameters cannot be performed on channel 'group_replication_recovery'.

https://dev.mysql.com/doc/refman/8.0/en/change-master-to.html

嗯,经过一段的时间的排查确定了group_replication_recovery通道有自己的安全机制和配置要求,所以在配置通道的时候不允许使用get_master_public_key

昨天搭建好后,今天去看发现master节点的容器挂掉了,slave1节点选举成了新的master节点,

嗯,发现这个问题后手动的拉起了之前挂掉的master节点,但是拉起之前挂掉master节点后,发现处于recovering状态,于是赶紧去看error log,这就出现了之前提到了8.0密码插件的问题(在从库连接主库的时候使用的是不被 caching_sha2_password认可的RSA公钥,所以主库MySQL拒绝了数据库连接的请求,从而,从库报错’caching_sha2_password’ reported error:Authentication require secure connection。)

select * from performance_schema.replication_connection_status\G

嗯,在组复制中要解决这个问题其实也很简单只需要在MySQL的配置文件中加入

loose-group_replication_recovery_get_public_key=ON就可以了

hosts文件配置问题

最开始的时候其实是没有去配置hosts文件的,导致出现找不到主机的报错,再容器节点的hosts文件中添加主机映射就可以了,

error log

2025-03-27T08:59:18.354273Z 25 [ERROR] [MY-010584] [Repl] Replica I/O for channel 'group_replication_recovery': Error connecting to source 'rep@fd8fe63cc738:3306'. This was attempt 1/1, with a delay of 60 seconds between attempts. Message: Unknown MySQL server host 'fd8fe63cc738' (-2), Error_code: MY-002005

但是这里又遇到一个问题,容器节点重启的时候会重置hosts文件,

嗯,经过一段时间的定位,原因找到了,但是怎么解决呐

csdn:docker容器重启之后/etc下某些配置文件被重置的问题_docker run gitlab重启配置文件被还原-CSDN博客

解决方法:可以再容器中写个脚本去自动修改hosts文件,然后再容器启动的时候自动执行这个脚本(/etc/rc.local),最后在/root/.bashrc文件中重新加载下就可以了

#/etc/rc.local
echo "127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.5      fd8fe63cc738
172.17.0.6      e5b0f9986741
172.17.0.7      6d570814d8bb" > /etc/hosts
#/root/.bashrc
source /etc/rc.local

slave节点执行的事务比组中存在的事务多

解决方法:

停止组复制-清除事务日志-重启组复制

STOP GROUP_REPLICATION;
RESET MASTER;
START GROUP_REPLICATION;
http://www.whsansanxincailiao.cn/news/31965528.html

相关文章:

  • wordpress 不能上传/seo快速排名外包
  • wordpress灯箱代码/网站优化 推广
  • 政府网站系统统一/网站策划书案例
  • 网站建设响应/今日关键词
  • 怎么撤销网站备案/长沙网络营销公司
  • dw怎么做网站首页/方法seo
  • 济南做网站优化公司/百度官网下载
  • 用java做直播网站/北京网络营销推广
  • 各种类型网站建设口碑好/全网营销整合营销
  • 网站用什么空间好/页面优化算法
  • 做网站需要准备的素材/营销外包团队怎么收费
  • 注册一个公司大概要多少钱/网络优化的意义
  • 网站建设pc指什么/网络销售
  • 做cpa搭建哪个网站比较好/阳西网站seo
  • 进不去的网站用什么浏览器/搜狗收录提交入口
  • 怎样给网站做新闻稿子/外国黄冈网站推广平台
  • 网站数据分析表格/可以免费发广告的网站
  • 新余做网站/今天发生了什么重大新闻
  • 网站建设推广技术/网站排名优化外包
  • 公司网站如何推广/深圳高端网站制作公司
  • 公司没有备案了网站/推广发帖网站
  • 国外的自建网站怎么做/市场营销专业课程
  • 浅谈高校图书馆网站建设/seo网站平台
  • 大兴黄村网站建设公司/seo外链购买
  • 网站建设推广接单语/什么叫软文推广
  • 网站域名个人备案查询/百度搜索指数
  • 专门做狗猫配套网站有什么意思/网店推广策划方案
  • 国际新闻最新消息美国/seoer是什么意思
  • 各大网站什么时候恢复彩色/网址生成短链接
  • 做网站建设怎么赚钱/收录情况