MySQL InnoDB 群集–在Windows上设置InnoDB群集

InnoDB集群最需要的功能之一是Windows支持,我们现在已将其作为InnoDB Cluster 5.7.17预览版 2的一部分提供。此博客文章将向您展示如何在MS Windows 10上运行InnoDB集群。64位系统。

我们将执行以下步骤。

  • 下载包
  • 安装
  • 创建一个InnoDB群集沙箱配置
  • 引导MySQL路由器
  • 测试配置
  • 下一步是什么?

让我们开始吧!

下载包

首先,我们必须下载安装所需的四个组件。

注意:我们仍在为Shell和Router开发MSI Installer软件包,因此我们现在将使用ZIP软件包。这意味着我们还必须手动安装Microsoft Visual C ++ 2015 Redistributable软件包。

安装

步骤1 – Microsoft Visual C ++ 2015可再发行

首先,我们将通过打开vc_redist.x64.exe并单击安装程序向导来安装Microsoft Visual C ++ 2015 Redistributable。

第2步– MySQL服务器5.7.17

现在,我们将运行MySQL Installer将MySQL Server 5.7.17安装到我们的系统上。打开mysql-installer-community-5.7.17.0.msi并允许安装程序对系统进行更改后,安装程序将提示您接受GPL许可协议。

在下一页上,我们可以选择安装类型。在这种情况下,我们将选择“仅服务器”以仅将MySQL Server安装到我们的系统上并继续安装。

安装完成后,我们可以在“产品配置”步骤中按[Cancel],因为我们将使用MySQL Shell为InnoDB集群配置多个沙箱实例。

之后,我们可以按[Next>]和[Finish]关闭MySQL Installer。

步骤3 – MySQL Shell和MySQL Router

接下来,我们将提取MySQL Shell和MySQL Router。使用鼠标右键单击mysql-innodb-cluster-labs201612-windows-x86-64bit.zip文件,然后选择[Extract All…],然后选择[Extract]。

这将创建一个名为mysql-innodb-cluster-labs201612-windows-x86-64bit的目录,其中包含两个文件。

  • mysql-router-2.1.1-windows-x86-64bit.zip
  • mysql-shell-1.0.6-labs-windows-x86-64bit.zip

让我们将bot ZIP提取到  “ C:\ Program Files \ MySQL \”  目录中。

右键单击mysql-router-2.1.1-windows-x86-64bit.zip文件,然后在弹出菜单中选择[Extract All…]。然后单击[浏览],导航到“本地磁盘(C :)”,然后导航到“程序文件”和“ MySQL”,然后单击[选择文件夹],然后单击[提取]。在访问权限对话框中按[继续],文件将被提取到“ C:\ Program Files \ MySQL \”目录中。

对mysql-shell-1.0.6-labs-windows-x86-64bit.zip文件重复相同的操作。

步骤4 – OpenSSL

最后,我们需要将OpenSSL ZIP直接提取到“ C:/”文件夹中。

右键单击文件,然后在弹出菜单中选择[全部提取...]。然后单击[浏览],导航到“本地磁盘(C :)”,然后单击[选择文件夹],然后单击[提取]。在访问权限对话框中按[继续],文件将被提取到“ C:\ OpenSSL”目录中。

步骤5 –将MySQL Shell,Router和OpenSSL添加到PATH变量

为了使MySQL Shell和MySQL Router在命令行上可用,我们将其安装目录添加到PATH变量中。

单击[Search Windows]控件,键入PATH,然后按[Enter]。

这将启动“环境变量”对话框,我们可以在其中双击“路??径”和三个新条目。

  • C:\ Program Files \ MySQL \ mysql-router-2.1.1-windows-x86-64bit \ bin
  • C:\ Program Files \ MySQL \ mysql-shell-1.0.6-labs-windows-x86-64bit \ bin
  • C:\ Program Files \ MySQL \ MySQL Server 5.7 \ bin
  • C:\ OpenSSL

然后按两次[确定]关闭“环境变量”对话框。

现在我们准备开始InnoDB集群配置!

创建一个InnoDB群集沙箱配置

启动MySQL Shell

为了创建InnoDB集群设置,我们将使用MySQL Shell中新的X AdminAPI。再次单击任务栏中的[Search Windows]控件,然后键入cmd,然后按[Enter]。这将打开命令提示符窗口。

在命令行上键入mysqlsh。这将启动MySQL Shell,您将看到欢迎消息和JavaScript提示符mysql-js>

现在我们准备创建InnoDB集群。

创建3个沙箱实例

为了提供对一个故障的容忍度,我们必须使用三个实例运行InnoDB集群。在此示例中,我们将使用在同一台计算机上运行的三个沙箱实例。在实际设置中,这三个实例将在网络上的不同主机上运行。

为了创建和启动MySQL沙箱实例,我们将使用dba.deploySandboxInstance()函数,该函数是X AdminAPI的一部分。在MySQL Shell中执行以下三个语句,并为每个实例输入root密码。

1

2

3

4

5

6

mysql-js> dba.deploySandboxInstance(3310);

mysql-js> dba.deploySandboxInstance(3320);

mysql-js> dba.deploySandboxInstance(3330);

注意:请为所有实例使用相同的root密码。

注意:您会注意到我们在这里传递了一个特殊的选项,称为ignoreSslError。我们尚未在Windows上支持自动SSL证书生成,因此我们必须显式设置该选项以为每个X AdminAPI函数调用禁用SSL。在下一发行版中将对此进行改进。

创建InnoDB集群

接下来,我们需要连接到要用来启动InnoDB集群的MySQL实例(也称为种子实例),然后执行命令以创建集群。

1

2

3

4

mysql-js> shell.connect(‘[email protected]:3310‘);

var cluster = dba.createCluster(‘devCluster‘);

为了验证创建是否可行,我们将其称为cluster.status();。功能。

1

2

mysql-js> cluster.status();

状态输出显示集群已启动并正在运行,但尚不能容忍故障。我们需要将其他两个MySQL Server实例添加到群集中。这是通过cluster.addInstance()函数完成的。

1

2

3

4

mysql-js> cluster.addInstance(‘[email protected]:3320‘);

mysql-js> cluster.addInstance(‘[email protected]:3330‘);

在添加了其他两个实例之后,让我们再来看一下集群的状态。

1

2

cluster.status();

InnoDB集群的设置成功!群集现在最多可以容忍一个故障。

您现在可以使用\ q退出MySQL Shell

引导MySQL路由器

在MySQL InnoDB集群启动并运行之后,我们要测试集群的高可用性。为此,我们需要MySQL路由器。如果一个实例失败,MySQL路由器将自动更新其路由配置,并确保将新的连接路由到其余实例。

引导MySQL路由器

在MySQL路由器执行路由操作之前,我们需要使它知道新的InnoDB集群。这是通过‘–bootstrap‘选项完成的,将MySQL Router指向集群的当前R / W MySQL Server实例。我们将使用“ -d”选项让路由器将其配置存储到主目录中的“ mysql-router”文件夹中。

让我们在命令提示符处执行以下命令。

1

2

C:\> mysqlrouter --bootstrap [email protected]:3310 -d %HOMEPATH%\mysql-router

然后,路由器打印将用于路由我们的连接的TCP / IP端口。对于我们的测试,我们将使用端口6446指向集群的Read / Write MySQL Server实例。

现在已经成功配置了路由器,我们现在可以通过使用‘ start / B‘命令并将路由器指向我们刚刚使用‘-bootstrap‘选项生成的配置文件在后台线程中启动它。

让我们执行以下命令。

1

2

C:\> start /B mysqlrouter -c %HOMEPATH%\mysql-router\mysqlrouter.conf

允许通过Windows防火墙访问后,MySQL路由器现在已启动并正在运行。它打印了它的进程ID,以后我们完成测试后就可以杀死它。

测试配置

现在我们已经有一个InnoDB集群和MySQL路由器正在运行,我们可以开始测试集群设置了。

与其直接连接到一个MySQL Server实例,不如通过MySQL路由器连接。

1

2

C:\> mysqlsh [email protected]:6446

提供根密码后,我们将连接到InnoDB集群。我们可以通过调用‘dba.getCluster()‘函数来获取集群实例。

1

2

3

4

mysql-js> var cluster = dba.getCluster();

mysql-js> cluster.status();

要找出我们连接到的实例,我们可以切换到SQL模式并查询实例运行的端口。

1

2

3

4

mysql-js> \sql

mysql-sql> SELECT @@port;

在这种情况下,我们已连接到在端口3310上运行的MySQL实例。

现在,我们可以切换回Javascript模式,并使用‘dba.killSandboxInstance()‘函数对MySQL Server实例执行硬终止。

1

2

3

4

mysql-sql> \js

mysql-js> dba.killSandboxInstance(3310);

现在实例已被杀死,让我们检查一下MySQL Router现在是否执行正确的路由。我们将尝试对刚刚被杀死的实例运行SELECT并检查结果。

1

2

3

4

mysql-js> \sql

mysql-sql> SELECT @@port;

由于我们杀死了在端口3310上运行的实例,MySQL Shell出现错误“错误:2006(HY000):MySQL服务器已消失”。因此,它自动尝试通过MySQL路由器重新尝试连接到root @ localhost:6446。路由器注意到实例3310被杀死,更新了其路由缓存并将我们重新路由到群集的新读/写实例。

让我们看看谁被提升为新的读/写实例。

1

2

mysql-sql> SELECT @@port;

在这种情况下,它是在端口3320上运行的MySQL Server实例。

现在,让我们看一下集群状态。

1

2

3

4

mysql-sql> \js

mysql-js> cluster.status();

我们可以看到在端口3310上正式运行的MySQL Server实例已经消失(MISSING)。

为了恢复它,我们将使用‘cluster.rejoinInstance()‘函数。但是首先,我们必须重新启动实例。

1

2

3

4

5

6

mysql-js> dba.startSandboxInstance(3310);

mysql-js> cluster.rejoinInstance(‘[email protected]:3310‘);

mysql-js> cluster.status();

状态输出将显示所有实例都重新联机,并且我们可以再次容忍一次故障。

至此我们的首次测试结束。

要清理系统,可以停止并删除沙箱实例。

1

2

3

4

5

6

7

8

mysql-js> dba.stopSandboxInstance(3310);

mysql-js> dba.stopSandboxInstance(3320);

mysql-js> dba.stopSandboxInstance(3330);

mysql-js> dba.deleteSandboxInstance(3310);

mysql-js> dba.deleteSandboxInstance(3320);

mysql-js> dba.deleteSandboxInstance(3330);

mysql-js> \q

可以从命令行使用以下命令来停止MySQL路由器。

1

2

C:\> taskkill /IM mysqlrouter.exe /F

要了解有关InnoDB集群的更多信息,请阅读其他博客文章,如动手教程博客文章

原文地址:https://www.cnblogs.com/mschen/p/11664385.html

时间: 2024-09-30 10:30:41

MySQL InnoDB 群集–在Windows上设置InnoDB群集的相关文章

android studio在windows上设置git/ssh

windows果然是与众不同的,凡事都要那么麻烦一点点(当然..是对程序员来说..) 一开始,我想用cygwin里的git,就省得我再多装一套软件,配置也可以统一,但事实证明不行 在android studio里将git配置为cygwin版后,点测试虽然能正常运行报告版本号,但在clone时直接失败,不管ssh是选builtin还是native. 那好,装上msys的git后,仍然要为ssh配置折腾.它有两种配法,但本质方法是一样的,就是设置环境变量GIT_SSH为指向对应ssh程序的路径 首先

Mysql zip包在Windows上安装配置

环境:Windows7 64位系统.mysql-5.7.16-winx64.zip 1.在mysql官网上下载所需的mysql zip包,如我下载的是mysql-5.7.16-winx64.zip: 2.解压缩到本地磁盘(如D盘),解压后的文件夹为mysql-5.7.16-winx64,重命名为mysql-5.7.16: 3.进入mysql-5.7.16文件夹中,显示的默认配置文件为my-default.ini,该配置文件中的配置项较少,我这里重新新建了一个配置文件my.ini: 4.双击打开m

如何在windows上设置文件的默认打开方式

单击改文件,选择属性 点击更改,选择你喜欢的方式将这个文件打开. 我选择是notepad++ 原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/12149732.html

CentOS7 mysql 连接不上 :[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable

mysql一直连接不上我的数据库,输入密码也进不去mysql. 报连接不上服务的错误. Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) 我就查看了一下mysql的日志 cat /var/log/mysqld.log 看到了文件没有权限的错误 可以修改下该文件的读写权限或目录下所有文件的权限 解决方案: 这就可以进入mysql了 CentOS7 mysql 连接不上 :[ERROR] InnoDB:

mysql存储引擎的种类与区别(innodb与myisam)

查找数据库的存数引擎: show engines show variables like '%storage_engine%' 更改数据库的引擎更改配置文件/etc/my.cnf 修改default-storage-engine=InnoDB(需要更改的存储引擎),然后重启数据库 service mysqld restart alter table engine=innodb 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存

Windows 上安装 MySQL

一.Windows 上安装 MySQL 相对来说会较为简单,点击链接 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 下载 zip 包. 二.下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\web\mysql-8.0.11 下. 三.打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息: [

windows上安装MySQL数据库

Windows上安装MySQL windows上安装MySQL较为简单,点击链接https://dev.mysql.com/downloads/mysql/,但不要下载最新的版本,因为用的人少,出问题不好解决,选择下载5.6版本 点击 Download 按钮进入下载页面,点击下图中的 No thanks, just start my download. 就可立即下载: 下载完后,把zip包解压到相应的目录,去服务中查看一下自己之前有没有MySQL服务,如果有,删除掉(在命令行下输入sc dele

MySQL存储引擎 -- MyISAM(表锁定) 与 InnoDB(行锁定) 锁定机制

前言 为了保证数据的一致完整性,任何一个数据库都存在锁定机制.锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一.本章将对MySQL中两种使用最为频繁的存储引擎MyISAM(表锁定)和Innodb(行锁定)各自的锁定机制进行较为详细的分析. MySQL锁定机制简介 数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问访问变得有序所设计的一种规则.对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自

MySQL存储引擎中的MyISAM和InnoDB

在使用MySQL的过程中对MyISAM和InnoDB这两个概念存在了些疑问,到底两者引擎有何分别一直是存在我心中的疑问.为了解开这个谜题,搜寻了网络,找到了如下信息: MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点:不支持事务处理(transaction).不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完