上次的博文項目進階 之 集羣環境搭建(二)MySQL集羣中,咱們搭建了一個基礎的MySQL集羣,這篇博客我們繼續講解MySQL集羣的相關內容,同時針對上一篇遺留的問題提出一個解決方案。
node
上一篇的博客中,咱們搭建的MySQL集羣架構中,只存在一個管理節點,這樣搭建的集羣能夠用以下所示的結構表示。 mysql
仔細分析上圖就會發現,上圖所示的單管理節點MySQL集羣存在當惟一的管理節點因爲網絡、斷電、壓力過大等各類緣由宕機後,數據節點和SQL節點將會各自爲戰,成爲人心渙散。這樣搭建的MySQL集羣可用性較低,因此咱們要將單管理節點集羣改變成以下圖所示的多管理節點集羣。 sql
在上圖的多管理節點MySQL集羣中,因爲管理節點存在多個,因此當其中的某一個管理節點出現宕機以後,其餘的管理節點自動接過MySQL集羣的管理權限,保證MySQL集羣的正常運行。
網絡
多管理節點MySQL的配置很是簡單,僅須要修改以前的博文中提升的三種節點的三個地方。
架構
打開管理節點C:\mysql\bin下的config.ini文件,將其中ndb_mgmd的相關配置修改成以下內容:
測試
[ndb_mgmd] # Management process options: # Hostname or IP address of management node HostName=192.168.24.16 # Directory for management node log files DataDir=C:/mysql/bin/cluster-logs [ndb_mgmd] # Management process options: # Hostname or IP address of management node HostName=192.168.24.43 # Directory for management node log files DataDir=C:/mysql/bin/cluster-logs
即修改以後的config.ini存在多個ndb_mgmd管理節點的相關配置。
優化
打開數據節點C:\mysqlcluster\datanode\mysql下的my.ini文件,將其中mysql_cluster的相關配置修改成以下內容:
spa
[mysql_cluster] # Optionsfor data node process: #location of management server ndb-connectstring=192.168.24.16,192.168.24.43
即修改以後的mysql_cluster節點下的ndb-connectstring對應多個管理節點的IP地址。(若是管理節點修改了服務端口號,則須要添加相應的端口號,例如:192.168.24.16:3306,192.168.24.43:3306)
.net
與修改數據節點相似,修改SQL節點配置須要打開C:\mysqlcluster\sqlnode\mysql下的my.ini文件,將其中mysqld的相關配置修改成以下內容:
code
[mysqld] # Options for mysqld process: # run NDB storage engine ndbcluster # location of management server ndb-connectstring=192.168.24.16,192.168.24.43
即修改以後的mysqld節點下的ndb-connectstring對應多個管理節點的IP地址。
多管理節點MySQL集羣的啓動和測試與單管理節點MySQL集羣的啓動和測試沒有區別,能夠參考上一篇文章中的相關介紹。須要注意的是在啓動MySQL集羣的時候,除第一個啓動的管理節點之外,其餘管理節點會出現以下圖所示的警告:
以上警告的意思是節點1和3,2和4的arbitrator在一臺主機上,可能引發整個集羣失敗,這個警告能夠不用放在心上繼續操做便可。
到目前爲止,我們的多管理節點的MySQL集羣就搭建完畢了,這樣的集羣的在正常狀況下能夠知足通常需求,但並非說它就真的無懈可擊,它從架構和實用度來說還能夠進行更多的優化和完善,具體都有哪些能夠優化和完善的地方呢?敬請期待接下來的文章!