加入收藏 | 设为首页 | 会员中心 | 我要投稿 航空爱好网 (https://www.52kongjun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql主机名 Oracle公共云中的MySQL InnoDB集群

发布时间:2022-12-19 15:31:12 所属栏目:MySql教程 来源:
导读:  题记:本文我们将引导大家完成在Oracle公共云(OPC)中创建3节点InnoDB集群的整个过程,包括从OPC IaaS资源的初始配置,到InnoDB集群的创建和配置的每个步骤。

  在OPC上配置三个MySQL实例

  开始之
  题记:本文我们将引导大家完成在Oracle公共云(OPC)中创建3节点InnoDB集群的整个过程,包括从OPC IaaS资源的初始配置,到InnoDB集群的创建和配置的每个步骤。
 
  在OPC上配置三个MySQL实例
 
  开始之前,必须在OPC上创建三个MySQL实例。
 
  登录到Oracle Cloud Dashboard并打开MySQL Cloud Service Console。
 
  主机访问虚拟机mysql_主机mysql配置_mysql主机名
 
  在Oracle MySQL云服务控制台上,按[Create Service]添加新的MySQL实例。实验中使用3个名称为ic01,ic02mysql主机名,ic03的MySQL实例。 输入服务说明,然后单击[Next >]。
 
  主机mysql配置_mysql主机名_主机访问虚拟机mysql
 
  在下一个屏幕上,选择虚拟机类型 - 它将运行Oracle Linux 6作为操作系统 - 提供SSH公共密钥 - 以便稍后可以访问该机器,并且指定了一些基本的MySQL配置详细信息。
 
  注意:本实验使用root作为管理员用户。 请确保在所有3个实例上使用相同的管理员密码。
 
  主机访问虚拟机mysql_主机mysql配置_mysql主机名
 
  创建虚拟机需要几分钟的时间,可以用这个时间开始创建另外两个MySQL服务实例。
 
  主机访问虚拟机mysql_主机mysql配置_mysql主机名
 
  MySQL服务实例可用后,单击实例名称-ic01以获取有关MySQL实例的更多信息。 请注意公共IP地址,因为需要使用此信息更新本地主机文件。
 
  mysql主机名_主机访问虚拟机mysql_主机mysql配置
 
  在这种情况下,MySQL服务实例正在140.86.13.239上运行。 对所有实例重复此操作,然后更新本地/ etc / hosts文件。 用编辑器打开文件 - 我使用的是nano:
 
  sudo nano /etc/hosts
 
  并为所有三个MySQL服务实例添加条目,指定其主机名和IP地址:
 
  140.86.32.38 ic03-mysql-1
 
  140.86.35.55 ic02-mysql-1
 
  140.86.13.239 ic01-mysql-1
 
  完成此操作后,可以更新访问规则以允许MySQL实例在OPC网络内相互通信,并允许公众访问机器(如果需要的话)。 单击上下文菜单,然后选择[Access Rules]。
 
  主机访问虚拟机mysql_主机mysql配置_mysql主机名
 
  在“Access Rules”屏幕上,单击[Create Rule]以显示创建访问规则对话框。
 
  mysql主机名_主机访问虚拟机mysql_主机mysql配置
 
  创建三个新规则并启用公共访问机器:
 
  创建访问规则#1
 
  Rule name:local_mysql_ic_access
 
  Description:Allow local InnoDB cluster communication
 
  Source: 10.196.0.0/16
 
  Destination:mysql_MASTER
 
  Destination Port(s):3306, 13306
 
  创建访问规则#2
 
  Rule name:local_mysql_ic_access2
 
  Description:Allow local InnoDB cluster communication
 
  Source: 10.196.0.0/16
 
  Destination:mysql_MASTER
 
  Destination Port(s):13306
 
  创建访问规则#3
 
  Rule name:mysql_p2admin_x
 
  Description:Permit public access to MySQL X Protocol Port
 
  Source:PUBLIC-INTERNET
 
  Destination:mysql_MASTER
 
  Destination Port(s):33060
 
  启用访问规则以进行公共3306访问
 
  Rule Name:ora_p2admin_mysql
 
  在这些步骤之后,就有三个实例可以准备好从SSH会话中为InnoDB集群使用。
 
  准备InnoDB群集使用的MySQL服务实例
 
  前面我们在OPC中创建了MySQL Cloud Service实例,并上传了公共SSH密钥,将OPC实例名称添加到本地主机文件中,以便可以通过(短)名称而非IP访问。 现在可以通过本地机器上的SSH访问OPC中的MySQL服务实例。
 
  打开终端并键入以下连接到第一个实例:
 
  ssh opc@ic01-mysql-1
 
  如果一切配置正确,我们将看到以下欢迎消息:
 
  主机mysql配置_主机访问虚拟机mysql_mysql主机名
 
  安装Python 2.7
 
  由于MySQL Shell需要Python,所以需要在继续之前进行安装。 我们将使用Oracle Linux的软件集合库2.3安装Python。 使用以下命令下载包含软件集合存储库条目的yum存储库文件:
 
  sudo wget -O /etc/yum.repos.d/public-yum-ol6.repo
 
  主机mysql配置_mysql主机名_主机访问虚拟机mysql
 
  启用存储库的简单方法是使用本教程中使用的yum-utils软件包。 由于默认情况下未安装,因此将使用以下命令进行安装:
 
  sudo yum install yum-utils
 
  一旦yum-utils包的安装完成,启用Software Collection存储库:
 
  sudo yum-config-manager --enable ol6_software_collections
 
  要继续,请安装Software Collection Library Utility和Python 2.7:
 
  sudo yum install scl-utils python27
 
  现在,启用使用Python 2.7:
 
  scl enable python27 -- bash
 
  安装MySQL Shell
 
  首先要安装MySQL Shell,需要安装官方的MySQL yum存储库。 运行以下命令来安装yum仓库:
 
  sudo rpm -Uvh
 
  在终端中键入以下命令来安装MySQL Shell:
 
  sudo yum install mysql-shell
 
  准备InnoDB群集使用的MySQL实例
 
  首先,需要切换到“oracle”用户,然后启动MySQL Shell,指定应该为其启用Python 2.7:
 
  sudo su - oracle
 
  scl enable python27 -- mysqlsh
 
  主机访问虚拟机mysql_主机mysql配置_mysql主机名
 
  切换到“oracle”用户,因为MySQL服务(mysqld)仅暴露给“oracle”用户,并且它不在“opc”用户的PATH中。
 
  由于OPC MySQL服务实例使用密码验证插件,并且其默认值对于自动生成的路由器引导密码可能会太严格,将通过使用MySQL Shell在每个实例上将密码策略降低一级以避免可能出现的问题:
 
  mysql-js> \sql
 
  mysql-sql> SET validate_password_policy=0;
 
  mysql-sql> \js
 
  接下来,通过调用以下函数配置本地实例,在出现提示时输入root用户的密码:
 
  mysql-js> dba.configureLocalInstance();
 
  需要指定MySQL配置文件(my.cnf),并在/u01/bin/mysql/my.cnf中找到。 如果使用不同于“root”的其他管理用户,那么当使用dba.configureLocalInstance()配置主机时,MySQL Shell可以为InnoDB集群创建新的管理用户,但是由于我们测试中使用“root” ,不需要创建新的用户。
 
  然后,将看到一个报告,其中包含由MySQL Shell所做的更改,并显示一条消息,指出需要重新启动MySQL服务实例以应用:
 
  mysql主机名_主机访问虚拟机mysql_主机mysql配置
 
  要重新启动MySQL服务器,首先退出MySQL Shell:
 
  mysql-js>\q
 
  然后使用“oracle”用户运行以下命令来停止MySQL Server实例:
 
  su oracle -c 'mysqladmin shutdown'
 
  然后再次启动MySQL服务器:
 
  su oracle -c 'cd $MYSQL_HOME && bin/mysqld_safe &'
 
  一旦服务再次运行,启动MySQL Shell,指定应启用Python 2.7:
 
  scl enable python27 -- mysqlsh
 
  然后运行以下命令来验证主机是否准备好进行集群使用:
 
  mysql-js> dba.checkInstanceConfiguration('root@localhost:3306');
 
  主机mysql配置_主机访问虚拟机mysql_mysql主机名
 
  创建InnoDB集群
 
  要创建InnoDB集群,将使用root用户在本地计算机上运行shell,并指定运行MySQL的端口:
 
  $ mysqlsh root@ic01-mysql-1:3306
 
  主机mysql配置_mysql主机名_主机访问虚拟机mysql
 
  请记住配置本地/ etc / hosts文件,以便能够使用远程连接的短主机名而不是IP地址
 
  现在,创建一个经典会话到主机,输入root的密码时出现提示:
 
  mysql-js> shell.connect('root@ic01-mysql-1:3306');
 
  在以下命令中,请注意ipWhitelist选项参数。 由于每个主机都有自己的网络,因此必须指定要允许连接到集群的IP的范围。 默认情况下存储该值的变量设置为“AUTOMATIC”,这允许仅从主机上的专用子网连接。 可以添加多个IP范围,用逗号分隔它们。 斜线后的数字是使用CIDR值时的网络位数。 将集群创建分配给一个变量供以后使用:
 
  mysql-js> var cluster = dba.createCluster('myCluster', {ipWhitelist:'10.196.0.0/16,127.0.0.1/8'});
 
  一旦创建集群,就会出现一些有关集群创建信息和向集群添加实例所需的功能的消息。
 
  mysql主机名_主机访问虚拟机mysql_主机mysql配置
 
  然后我们可以使用以下命令验证集群的状态:
 
  mysql-js> cluster.status();
 
  mysql主机名_主机访问虚拟机mysql_主机mysql配置
 
  将实例添加到InnoDB集群
 
  现在是时候向集群添加实例了。 运行以下功能添加已配置的第二个实例。 由于上述原因,还可以指定可选参数ipWhitelist:
 
  mysql-js> cluster.addInstance('root@ic02-mysql-1:3306', {ipWhitelist:'10.196.0.0/16,127.0.0.1/8
 
  主机访问虚拟机mysql_主机mysql配置_mysql主机名
 
  运行以下命令来验证集群中的实例的状态:
 
  mysql-js> cluster.status();
 
  主机mysql配置_mysql主机名_主机访问虚拟机mysql
 
  然后添加第三个实例:
 
  mysql-js> cluster.addInstance('root@ic03-mysql-1:3306', {ipWhitelist:'10.196.0.0/16,127.0.0.1/8'});
 
  主机访问虚拟机mysql_主机mysql配置_mysql主机名
 
  并再次运行命令来验证集群的状态:
 
  mysql-js> cluster.status();
 
  主机访问虚拟机mysql_主机mysql配置_mysql主机名
 
  保持集群配置
 
  为了在每个实例上保持集群配置 - 以便当重新启动时,实例会自动重新加入集群 - 必须在每个实例上再次使用dba.configureLocalInstance()。 该命令将使用自动重新加入群集所需的参数来更新本地my.cnf文件。
 
  为此,请在每个实例上本地运行以下命令:
 
  mysql-js> dba.configureLocalInstance();
 
  配置MySQL路由器
 
  下一步是引导集群。 我们假设已经安装了MySQL路由器2.1.3+。 打开终端或命令提示符并键入以下命令:
 
  windows:
 
  mysqlrouter --bootstrap root@ic01-mysql-1:3306 -d %HOMEPATH%\myrouter
 
  Linux:
 
  mysqlrouter --bootstrap root@ic01-mysql-1:3306 -d myrouter
 
  mysql主机名_主机访问虚拟机mysql_主机mysql配置
 
  启动MySQL路由器
 
  Windows:
 
  start /B mysqlrouter -c %HOMEPATH%\myrouter\mysqlrouter.conf
 
  linux:(假设myrouter目录在主路径上)
 
  myrouter/start.sh
 
  测试InnoDB集群
 
  现在将演示故障切换的工作原理。
 
  启动MySQL Shell并使用指向远程集群的MySQL路由器端口在本地连接:
 
  mysqlsh root@localhost:6446
 
  然后使用以下函数获取集群句柄:
 
  mysql-js> var cluster = dba.getCluster();
 
  然后显示集群的状态:
 
  mysql-js> cluster.status();
 
  主机访问虚拟机mysql_mysql主机名_主机mysql配置
 
  可以通过查找标记为具有“R / W”模式的实例来查看当前为PRIMARY的实例。 然后远程连接到该实例并停止MySQL服务:
 
  su oracle -c 'mysqladmin shutdown'
 
  主机访问虚拟机mysql_主机mysql配置_mysql主机名
 
  一旦MySQL服务停止,请再次检查集群状态:
 
  mysql-js> cluster.status();
 
  将看到一条消息,指出在查询期间与MySQL的连接已丢失。
 
  要重新连接,请运行以下命令:
 
  mysql-js> shell.connect('root@localhost:6446');
 
  然后执行该功能以再次验证集群状态:
 
  mysql-js> cluster.status();
 
  mysql主机名_主机mysql配置_主机访问虚拟机mysql
 
  请注意,实例ic01-mysql-1具有“MISSING”状态,而其他实例之一则将PRIMARY(或“master”)角色从“R / O”更改为“R / W”。
 
  在远程主机连接上再次启动MySQL服务:
 
  cd $MYSQL_HOME; bin/mysqld_safe &
 
  再次检查集群状态:
 
  mysql-js> cluster.status();
 
  请注意,实例ico1-mysql-1返回“ONLINE”,但现在它具有一个SECONDARY(或“从”)角色,其模式设置为“R / O”。
 
  主机mysql配置_主机访问虚拟机mysql_mysql主机名
 
  结论
 
  现在已经获得了使用Oracle公共云和MySQL云服务实例正确创建和配置集群的基本知识,包括如何引导远程集群,以便可以在本地访问。 当不想公开运行MySQL服务器的服务器,而是提供仅处理应用程序流量的另一台服务器的IP地址时,此方案非常有用。
 
  还有很多其他功能,我们仍然想与你分享,敬请关注本系列的第二部分!
 
  如果您对本文所述的基本设置有任何疑问,请在评论中通知我们。谢谢你使用MySQL!
 

(编辑:航空爱好网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!