Mysql NDB Cluster 搭建

準備

簡單說

  • Mysql NDB Cluster,大家都明白是 Mysql 數據庫的一種高可用解決方案,是爲了解決單點機器故障後,不能繼續爲我們的應用提供數據庫支持的問題而產生的。
  • 那麼,Mysql NDB Cluster 本身能做什麼?不能做什麼呢?
  • 能,橫向擴展增加單點 Mysql 數據庫,保證整個集羣無論時候,只要有一臺機器活着,就能說是這個集羣在對外輸出數據。
  • 不能,負載均衡,故障轉移
  • 而官方說的,負載均衡、故障轉移相關都是與Mysql Router 或者 Mysql 的 java-connector.jar 結合起來實現的。

集羣的橫向擴展

集羣的作用大概解決三個問題:

  1. 高可用(數據庫的存活)
  2. 數據庫響應速度(可以多節點同時處理一個請求)
  3. 數據庫上限(靈活的加入一個節點後,使用SQL調整表空間上限)

查資料

  • 我是按照參考裏的MySQL Cluster搭建與測試進行搭建的。VMware 我選的 10,比較穩定。系統選的 Linux,用的 Centos7,建議使用參考裏的阿里巴巴鏡像庫去下載,比較快。

動手做

  • 需要先移除一個依賴
    • mariadb-libs
    yum remove mariadb-libs
    
  • 需要先安裝四個依賴
    • DBI
    yum install perl-DBI
    
    • MethodMaker ,如果安裝失敗的話,直接下載RPM包離線安裝即可
    yum install perl-Class-MethodMaker
    
    • libaio
    yum install libaio
    
    • net-tools
    yum install net-tools
    
  • Mysql Cluster SQL Server Node
    • 按照順序安裝各個rpm包, common -> libs -> client -> server
    • 啓動 Mysql Server 可以用命令 systemctl start mysqld.service
    • ps -A 可以查看 mysql 進程是否啓動
    • 在安裝好後,我們可以在目錄 /etc/my.cnf 中找到一個 mysqld.log 的路徑,順着路徑打開它可以看到 2019-04-19T09:36:30.208338Z 1 [Note] A temporary password is generated for root@localhost: rytg/2u78kjM 類似於這麼一句話,其中 rytg/2u78kjM 就是我們數據庫的初始密碼
    • mysql -u root -p 用來登錄我們的MySQL Server
    • 第一次登陸需要重置密碼 教你重置 Linux 下的 Mysql 密碼
    • 我們在連接3306端口的時候可能遇到連不上的情況,這裏我建議大家直接關掉虛擬機的防火牆 systemctl [stop|start|restart] firewalld 比較省勁兒,如果實在想解決端口連接的問題,可以點這裏
    • 遠程連接授權,可以參考這裏
    • 停掉 Mysql Server 服務,systemctl stop mysqld.service,在更改了 my.cnf的配置文件後,使用 mysqld啓動 Mysql Server 服務
  • Mysql Cluster SQL NDB Node
    • rpm 相關的包
  • Mysql Cluster SQL MGM Node
    • rpm 相關的包

配置相關的配置文件

MGM config.ini

[ndbd default]
NoOfReplicas=2
[ndb_mgmd]
Hostname=192.168.147.138
[ndbd]
HostName=192.168.147.139
[ndbd]
HostName=192.168.147.140
[mysqld]
HostName=192.168.147.136
[mysqld]
HostName=192.168.147.137

NDB my.cnf

[mysql_cluster]
ndb-connectstring=192.168.147.138

SQL-Node my.cnf

ndbcluster
ndb-connectstring=192.168.147.138
user=root												# 這裏需要加上,不然在日誌裏會報出個“Please read "Security" section of the manual to find out how to run mysqld a”

[MYSQL_CLUSTER]
ndb-connectstring=192.168.147.138

  1. 在開始安裝 rpm 包的時候,比如 common 包,也許會遇到衝突的情況,需要解決下
[root@SQL-Node-1 src]# rpm -i --test mysql-cluster-community-common-7.6.9-1.el7.x86_64.rpm
警告:mysql-cluster-community-common-7.6.9-1.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID 5072e1f5: NOKEY
	file /usr/share/mysql/czech/errmsg.sys from install of mysql-cluster-community-common-7.6.9-1.el7.x86_64 conflicts with file from package mariadb-libs-1:5.5.60-1.el7_5.x86_64
	file /usr/share/mysql/danish/errmsg.sys from install of mysql-cluster-community-common-7.6.9-1.el7.x86_64 conflicts with file from package mariadb-libs-1:5.5.60-1.el7_5.x86_64
	...	[這裏省略好多]

此時可以使用,將衝突的包刪除,再執行安裝

[root@SQL-Node-1 src]# yum -y remove mariadb-libs
  1. 在安裝 client 時候也許會報出如下錯誤
[root@SQL-Node-1 src]# rpm -ivh mysql-cluster-community-client-7.6.9-1.el7.x86_64.rpm
警告:mysql-cluster-community-client-7.6.9-1.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID 5072e1f5: NOKEY
錯誤:依賴檢測失敗:
	perl(Class::MethodMaker) 被 mysql-cluster-community-client-7.6.9-1.el7.x86_64 需要

此時需要我們離線下載 perl-Class-MethodMaker 的 rpm 包手動進行安裝
可以在參考中找到提示

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章