MYSQL如何利用MYSQL Shell安装 INNODB Cluster

技术MYSQL如何利用MYSQL Shell安装 INNODB Cluster今天就跟大家聊聊有关MYSQL如何利用MYSQL Shell安装 INNODB Cluster,可能很多人都不太了解,为了让大家更加了解,小编

今天我就来和大家聊聊MYSQL是如何用MYSQL Shell安装INNODB Cluster的,可能很多人都不太懂。为了让大家更好的了解,边肖为大家总结了以下内容,希望大家能从这篇文章中有所收获。

MYSQL 8发布已经有一段时间了,关于MGR的官方解决方案也已经有一段时间了,现在用优雅的名字innodb cluster来称呼MGR。虽然解决方案不止这些,但官方解决方案需要熟悉。(注意:您必须使用官方社区版本。如果您仍然在最新版本的percona 8.019上使用mysqlsh,您将报告用户权限错误。但是,这个错误发生在官方版本8.014中,所以使用官方解决方案需要与官方社区版本合作。另外,用percona版本的MYSQL 8.019以传统方式安装也会出现问题,唉。).

基本上花了半天的时间研究mysql shell的安装,看了很多其他的文章,但其实基本上还是遵循了上面的,以及成功的概率。

以下是踩坑记录。

以下安装环境基于官方社区的最新版本8.019。

【实验环境。

192.168.198.100

192.168.198.101

192.168.198.102

当然,官方架构图如下。

MYSQL如何利用MYSQL  Shell安装 INNODB  Cluster

作为计划的一部分,除了上次提到的主要功能,mysql shell还有一个上次没有提到的功能,那就是集群的管理和安装。

在使用mysql shell之前,你还应该给你的账号(这里我们用的是admin)并赋予相关的权限,否则你无法工作。如果不给予相关权限,mysql shell在使用时也会报错。(这仅在安装集群时。)

以下是相关权限。

CREATE USER admin @“%”由“admin”标识;

授予备份管理、克隆管理、创建用户、执行、文件、持久保存、系统变量管理、进程、重新加载、复制客户端、复制从机、选择、关机、超级、系统变量管理开*。*带授权选项的“管理员”@“% ”;

在mysql上授予删除、插入、更新权限。*带授权选项的“管理员”@“% ”;

GRANT ALTER,ALTER ROUTINE,CREATE,CREATE ROUTINE,CREATE TEMPORARY TABLES,CREATE VIEW,DELETE,DROP,EVENT,EXECUTE,INDEX,INSERT,LOCK TABLES,REFERENCES,SHOW VIEW,TRIGGER,UPDATE ON MySQL _ innodb _ cluster _ metadata。*带授权选项的“管理员”@“% ”;

GRANT ALTER,ALTER ROUTINE,CREATE,CREATE ROUTINE,CREATE TEMPORARY TABLES,CREATE VIEW,DELETE,DROP,EVENT,EXECUTE,INDEX,INSERT,LOCK TABLES,REFERENCES,SHOW VIEW,TRIGGER,UPDATE ON MySQL _ innodb _ cluster _ metadata _ bkp。*带授权选项的“管理员”@“% ”;

GRANT ALTER,ALTER ROUTINE,CREATE,CREATE ROUTINE,CREATE TEMPORARY TABLES,CREATE VIEW,DELETE,DROP,EVENT,EXECUTE,INDEX,INSERT,LOCK TABLES,REFERENCES,SHOW VIEW,TRIGGER,UPDATE ON MySQL _ innodb _ cluster _ metadata _ previous。*带授权选项的“管理员”@“% ”;

以上账号也是我们运营mysql innodb集群的账号。

直接下载mysqlshell的rpm安装包,直接输入mysqlsh。每个MYSQL。

要安装,以后如果采用这一方案 mysql shell 将是你必要的工具

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

就进入到了mysql shell ,其中mysql shell中有很多关于DBA 的命令集合,可以看出,这些命令基本都是围绕我们的 innodb cluster

checkInstanceConfiguration()      

createReplicaSet()                

getReplicaSet()                   

stopSandboxInstance()
configureInstance()               

deleteSandboxInstance()           

help()                            

upgradeMetadata()
configureLocalInstance()         

deploySandboxInstance()         

 killSandboxInstance()             
configureReplicaSetInstance()      

dropMetadataSchema()               

rebootClusterFromCompleteOutage()
createCluster()                    

getCluster()                       

startSandboxInstance()

1  我们先对我们的单机的 mysql 进行检查,看看我们的配置哪里还有问题(针对innodb cluster)

dba.checkInstanceConfiguration('admin@192.168.198.100:3306')

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

我们可以很明显的看出来,我当前如果要使用 innodb cluster 中在配置有一个错误,我的 binlog_checksum 当前的设置是有问题的。我需要将其改为none

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

三台机器,在均ok的情况下,可以进行下一步的配置 (当然这里很可能有不会OK ,可能的问题 ,GTID 开没有开, 你设置那个帐号是要进行innodb cluster 集群操作的帐号,权限是否有,你的 enforce_gtid_consistency 开没有看,如果这些都不知道,建议先百度一下)

这里假设,你一切都是OK 的

我们直接通过刚才 admin 帐号来进行操作,进入mysqlsh 

通过 \connect 命令来连接进来你的第一个  mysql  innodb cluster ,这里我连接了100

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

dba.createCluster('cluster')    通过这个命令我们开始建立我们的 innodb cluster

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

var cluster = dba.getCluster()
cluster.status()

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

目前到这里是一切OK ,坑就就在下面了,而且看了一轮文章,包括中文的,英文的,一概不谈。

按照文档,下面我们直接使用cluster.addInstance('admin@mgr2:3306'),将第二个节点加入到集群中。

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

报错了,原因也找到了,是我其中一台机器和其他的机器(primary 和standby 的小版本不同导致,虽然都是8.019,但percona 和 社区版是无法之间是无法使用 clone的功能的)。

OK 我们将所有的节点都更换成,官方的社区版,再次添加节点,依然报错

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

卡在哪里,卡在clone 里,这也是最浪费时间的排错的问题,因为无论在官方的文档,还是第三方的中文,英文的文档都没有谈这个问题,所以耗费了一点时间。

实际上我们只要在standby节点做以下两个工作即可(按正常的逻辑说,系统是应该在操作clone之前判断的,但实际上,根本没有,导致操作的过程系统是克隆了,但对方的机器根本不接受这个clone的文件)

INSTALL PLUGIN clone SONAME 'mysql_clone.so';
SET GLOBAL clone_valid_donor_list = 'mgr1:3306';

关键就是差者两句,应该是所有的节点都要安装插件,然后需要在standby节点设置,允许standby节点能接受来自mgr1节点的数据,否则无法添加节点,进入到集群中。做完这两句在mgr 2  mgr 3 后,整体的工作就很顺利了。

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

所以到此为止,我的集群通过mysql shell 的方式来安装是成功的。

MYSQL如何利用MYSQL Shell安装 INNODB Cluster

整体的感官就是MYSQL 的集群安装通过mysql shell的方式来安装,很方便,但你要有一些基本的知识

1 JS 的简单语法

2 CLONE 的基本知识

否则你的安装很难顺利。

当然上面的安装整体的过程,以及后续的故障转移过程,上面的方式还会有漏洞。

1 需要设置整体集群的clone 的参数设置,这样在故障转移时就会游刃有余

2 每个节点要添加除自己以外的所有节点的 clone_valid_donor_list 否则故障转移成功后,故障节点重新加入不会那么顺利。

另外根据以上操作,以后通过mysqlshell + 程序的方式来对 INNODB CLUSTER 进行管理,将比以前管理MYSQL 的集群要方便,并且可以进行更多的高度自动化。

看完上述内容,你们对MYSQL如何利用MYSQL Shell安装 INNODB Cluster有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/46793.html

(0)

相关推荐

  • elasticsearch 教程(elasticsearch配置优化详解)

    技术Elasticsearch 预处理的技巧示例分析本篇文章为大家展示了Elasticsearch 预处理的技巧示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 1、上问题

    攻略 2021年12月16日
  • 清朝统治多少年,明朝和清朝各存在了多少年

    技术清朝统治多少年,明朝和清朝各存在了多少年明朝(1368年―1644年)是中国历史上最后一个由汉族建立的大一统王朝清朝统治多少年,共传十六帝,享国二百七十六年。一、太祖元璋,洪武,在位3l年。二、惠帝允炆,建文,在位

    生活 2021年10月28日
  • 对MySQL性能优化的简单办法是怎样的

    技术对MySQL性能优化的简单办法是怎样的对MySQL性能优化的简单办法是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对拥有一个几十万行表的 M

    攻略 2021年11月17日
  • vue中自定义一个全局指令(vue什么情况使用自定义指令)

    技术vue中有哪些自定义指令这篇文章主要介绍“vue中有哪些自定义指令”,在日常操作中,相信很多人在vue中有哪些自定义指令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中有哪些自定

    攻略 2021年12月16日
  • springbootjpa整合多数据源(springboot怎么配置多个数据源)

    技术SpringBoot+Jpa项目配置双数据源怎么实现这篇文章主要介绍“SpringBoot+Jpa项目配置双数据源怎么实现”,在日常操作中,相信很多人在SpringBoot+Jpa项目配置双数据源怎么实现问题上存在疑

    攻略 2021年12月23日
  • ibatisresultclass有哪几种类型(ibatis result查询空值怎么处理)

    技术如何进行iBATIS ResultMap基础的浅析本篇文章为大家展示了如何进行iBATIS ResultMap基础的浅析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。iBAT

    攻略 2021年12月19日