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密碼。

注意:請為所有實例使用相同的root密碼。

注意:您會注意到我們在這里傳遞了一個特殊的選項,稱為ignoreSslError。我們尚未在Windows上支持自動SSL證書生成,因此我們必須顯式設置該選項以為每個X AdminAPI函數調用禁用SSL。在下一發行版中將對此進行改進。

創建InnoDB集群

接下來,我們需要連接到要用來啟動InnoDB集群的MySQL實例(也稱為種子實例),然后執行命令以創建集群。

為了驗證創建是否可行,我們將其稱為cluster.status();。功能。

狀態輸出顯示集群已啟動並正在運行,但尚不能容忍故障。我們需要將其他兩個MySQL Server實例添加到群集中。這是通過cluster.addInstance()函數完成的。

在添加了其他兩個實例之后,讓我們再來看一下集群的狀態。

InnoDB集群的設置成功!群集現在最多可以容忍一個故障。

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

引導MySQL路由器

在MySQL InnoDB集群啟動並運行之后,我們要測試集群的高可用性。為此,我們需要MySQL路由器。如果一個實例失敗,MySQL路由器將自動更新其路由配置,並確保將新的連接路由到其余實例。

引導MySQL路由器

在MySQL路由器執行路由操作之前,我們需要使它知道新的InnoDB集群。這是通過'–bootstrap'選項完成的,將MySQL Router指向集群的當前R / W MySQL Server實例。我們將使用“ -d”選項讓路由器將其配置存儲到主目錄中的“ mysql-router”文件夾中。

讓我們在命令提示符處執行以下命令。

然后,路由器打印將用於路由我們的連接的TCP / IP端口。對於我們的測試,我們將使用端口6446指向集群的Read / Write MySQL Server實例。

現在已經成功配置了路由器,我們現在可以通過使用' start / B'命令並將路由器指向我們剛剛使用'-bootstrap'選項生成的配置文件在后台線程中啟動它

讓我們執行以下命令。

允許通過Windows防火牆訪問后,MySQL路由器現在已啟動並正在運行。它打印了它的進程ID,以后我們完成測試后就可以殺死它。

測試配置

現在我們已經有一個InnoDB集群和MySQL路由器正在運行,我們可以開始測試集群設置了。

與其直接連接到一個MySQL Server實例,不如通過MySQL路由器連接。

提供根密碼后,我們將連接到InnoDB集群。我們可以通過調用'dba.getCluster()'函數來獲取集群實例。

要找出我們連接到的實例,我們可以切換到SQL模式並查詢實例運行的端口。

在這種情況下,我們已連接到在端口3310上運行的MySQL實例。

現在,我們可以切換回Javascript模式,並使用'dba.killSandboxInstance()'函數對MySQL Server實例執行硬終止。

現在實例已被殺死,讓我們檢查一下MySQL Router現在是否執行正確的路由。我們將嘗試對剛剛被殺死的實例運行SELECT並檢查結果。

由於我們殺死了在端口3310上運行的實例,MySQL Shell出現錯誤“錯誤:2006(HY000):MySQL服務器已消失”。因此,它自動嘗試通過MySQL路由器重新嘗試連接到root @ localhost:6446。路由器注意到實例3310被殺死,更新了其路由緩存並將我們重新路由到群集的新讀/寫實例。

讓我們看看誰被提升為新的讀/寫實例。

在這種情況下,它是在端口3320上運行的MySQL Server實例。

現在,讓我們看一下集群狀態。

我們可以看到在端口3310上正式運行的MySQL Server實例已經消失(MISSING)。

為了恢復它,我們將使用'cluster.rejoinInstance()'函數。但是首先,我們必須重新啟動實例。

狀態輸出將顯示所有實例都重新聯機,並且我們可以再次容忍一次故障。

至此我們的首次測試結束。

要清理系統,可以停止並刪除沙箱實例。

可以從命令行使用以下命令來停止MySQL路由器。

要了解有關InnoDB集群的更多信息,請閱讀其他博客文章,如動手教程博客文章


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM