MySQL InnoDB 群集–在Windows上设置InnoDB群集
InnoDB集群最需要的功能之一是Windows支持,我们现在已将其作为InnoDB Cluster 5.7.17预览版 2的一部分提供。此博客文章将向您展示如何在MS Windows 10上运行InnoDB集群。64位系统。
我们将执行以下步骤。
- 下载包
- 安装
- 创建一个InnoDB群集沙箱配置
- 引导MySQL路由器
- 测试配置
- 下一步是什么?
让我们开始吧!
下载包
首先,我们必须下载安装所需的四个组件。
- 来自dev.mysql.com的具有组复制功能的MySQL Server 5.7.17。
- 来自labs.mysql.com的MySQL Shell 1.0.6和MySQL Router 2.1.1。
- MS的Microsoft Visual C ++ 2015可再发行组件包
- fabforce.net的OpenSSL 1.0.2j二进制软件包
注意:我们仍在为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('root@localhost: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('root@localhost:3320');
mysql-js> cluster.addInstance('root@localhost: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 root@localhost: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 root@localhost: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('root@localhost: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集群的更多信息,请阅读其他博客文章,如动手教程博客文章。
MySQL InnoDB 群集–在Windows上设置InnoDB群集的更多相关文章
- Windows上设置Sass
现在有很多信息在预处理器上浮动.大部分信息都面向Mac用户,所以在这篇文章中,我提供了一个非常简单的指南,帮助基于Windows的开发人员快速启动并运行Sass(我选择的预处理器). 本文是在此博客上 ...
- Mysql zip包在Windows上安装配置
环境:Windows7 64位系统.mysql-5.7.16-winx64.zip 1.在mysql官网上下载所需的mysql zip包,如我下载的是mysql-5.7.16-winx64.zip: ...
- Windows上设置Mozilla Thunderbird邮件客户端后台运行
作者:荒原之梦 操作系统: Windows 10 Thunderbird版本: 52.6.0(32-bit) Thunderbird官网页面:https://www.mozilla.org/zh-CN ...
- android studio在windows上设置git/ssh
windows果然是与众不同的,凡事都要那么麻烦一点点(当然..是对程序员来说..) 一开始,我想用cygwin里的git,就省得我再多装一套软件,配置也可以统一,但事实证明不行 在android s ...
- Windows上使用Thunderbird与GPG发送和解密公钥加密的电子邮件
作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=552 非对称加密的原理: 最先出现的加密方法是对称加密.在对称加密算法中是不区分公钥和私钥的,加密与解密使用的都是同一个 ...
- windows 上的MySQL默认字符集设置踩过的坑
前言: 前几天刚买了新电脑,装上MySQL有几天了,今天没事试了一下,发现默认字符集没有修改,还是默认的latin1,折腾了大半天,终于搞好了. 这是我成功设置后的结果图: 命令式直接在MySQL界面 ...
- 在 windows 上安装免安装版的mysql
在 windows 上安装免安装版的 1. 下载路径 https://downloads.mysql.com/archives/community/ 2. 解压 假设解压后的路径为:E:\Enviro ...
- mysql存储引擎的种类与差别(innodb与myisam)
查找数据库的存数引擎: show engines show variables like '%storage_engine%' 更改数据库的引擎更改配置文件/etc/my.cnf 改动default- ...
- 【数据库开发】在Windows上和Linux上配置MySQL的过程
[数据库开发]在Windows上和Linux上配置MySQL的过程 标签(空格分隔): [编程开发] 首先是在Windows上尝试用QT进行MySQL数据库开发,结果总出现driver不能load的错 ...
随机推荐
- 在Eclipse中使用Beyond Compare做为比较工具
1.下载org.eclipse.externaltools-Update-0.8.9.v201003051612.zip插件包 接下来,要下载Beyond Compare的插件,http://beyo ...
- C#中字符串转换为计算公式
添加COM引用: private void button_Click(object sender, EventArgs e) { MSScriptControl.ScriptControl sc = ...
- Linux环境:VMware下windows虚拟机与linux主机进行文件共享的方法
操作主要分两大步骤: 一.是对主机进行配置: 二.是在虚拟机上直接连接共享目录. 一.主机配置 1.打开VMware虚拟机,双击需要进行文件共享的虚拟机.如下图,双击CentOS 64位(以linux ...
- MySQL导入数据报错Got a packet bigger than‘max_allowed_packet’bytes错误的解决方法
由于max_allowed_packet的值设置过小的原因,只需要将max_allowed_packet值设置大一点就OK了.通过终端进入mysql控制台,输入如下命令可以查看max_allowed_ ...
- Spring boot应用如何支持https
首先使用命令行生成一个keystore文件: keytool -genkey -alias tomcat -keyalg RSA -keystore ./jerry.keystore 保存到本地项目文 ...
- Python实现的贪婪算法
个州的听众都收听到.为此,你需要决定在哪些广播台播出.在每个广播台播出都需要支出费用,因此你力图在尽可能少的广播台播出 # 1.创建一个列表,其中包含要覆盖的州 states_needed = set ...
- JVM 运行时数据区:程序计数器、Java 虚拟机栈和本地方法栈,方法区、堆以及直接内存
Java 虚拟机可以看作一台抽象的计算机,如同真实的计算机,它也有自己的指令集和运行时内存区域. Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存(运行时内存区域)划分为若干个不同的数 ...
- Httpd服务进阶知识-LAMP架构概述
Httpd服务进阶知识-LAMP架构概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LAMP架构概述 1>.什么是LAM(M)P架构 L: linux A: apa ...
- jmeter针对websocket协议的压测
之前一直没有接触过websocket协议,所以一直对websocket的压测存在疑惑,在网上参考文章并不断尝试之后,终于有所得:第一次用jmeter的websoket插件,用的ws非加密协议,请求都能 ...
- loadrunner中web_submit_data与web_submit_form区别
以loadrunner自带的订票系统为例 当选择红框选中的模式时,所录脚本如下:回放时可以正常回放,登录成功 选另一种所录脚本如下:回放时登录不成功,session失效, 其中web_submit_f ...