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)

相关推荐

  • Web/JS:使用innerHTML动态加入html导致按钮失效

    技术Web/JS:使用innerHTML动态加入html导致按钮失效 Web/JS:使用innerHTML动态加入html导致按钮失效前几天我在用innerHTML把html动态加入table的时候,发

    礼包 2021年12月1日
  • 馒头冷冻能保存多久,馒头一般保存多久还可以吃

    技术馒头冷冻能保存多久,馒头一般保存多久还可以吃你好!我是美食领域创作者娜小厨 ,很高兴可以为你解答问题馒头冷冻能保存多久。馒头属于发面类面食,内部结构宣软蓬松 气孔较多 。特别容易滋生细菌 。尤其是黄曲霉菌 。曲霉特别

    生活 2021年10月22日
  • SpringMVC实现原理解析

    技术SpringMVC实现原理解析 SpringMVC实现原理解析一、SpringMVC简介
    SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了

    礼包 2021年11月29日
  • SQL附加数据库失败问题的解决方法

    技术SQL附加数据库失败问题的解决方法这篇文章将为大家详细讲解有关SQL附加数据库失败问题的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为了偷个懒,利用这个数据

    攻略 2021年11月30日
  • mysql的cmake方式有哪些

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

    攻略 2021年10月20日
  • 简述漏洞利用类samba的实验步骤(samba漏洞利用实验步骤)

    技术如何分析Samba信息泄露漏洞SambaBleed本篇文章给大家分享的是有关如何分析Samba信息泄露漏洞SambaBleed,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟

    攻略 2021年12月21日