linux 下搭建mysql-cluster集群環境


目標

在多台centos7 x64機器上部署mysql-cluster服務,實現基於ndbcluster引擎的mysql集群服務

環境

  1. 三台安裝了centos7 x64系統的服務器(基本處於裸機狀態),IP分別為192.168.1.2、192.168.1.3、192.168.1.4。 
    各個機器功能如下: 
    192.168.1.2:mgm節點 
    192.168.1.3:sql節點+data節點 
    192.168.1.4:sql節點+data節點

  2. 從mysql官網下載的mysql-cluster壓縮包:mysql-cluster-gpl-7.4.9-linux-glibc2.5-x86_64.tar.gz 附上下載地址:https://dev.mysql.com/downloads/cluster/ 我使用的是7.4.9版本,官方目前最新的是7.5.7,差別應該不大。

3.此環境使用的root用戶進行的搭建

開始搭建

  • 步驟1 
    將mysql-cluster-gpl-7.4.9-linux-glibc2.5-x86_64.tar.gz上傳到三個機器,並解壓。解壓完成后,修改路徑,保證所有的文件位於/usr/mysql-cluster下(此路徑在配置文件中會用到)
  • 步驟2 
    config.ini文件復制到192.168.1.2/usr/mysql-cluster下,config.ini文件內容如下:
[ndbd default] NoOfReplicas=2 MaxNoOfTables=1024 MaxNoOfUniqueHashIndexes=1024 MaxNoOfOrderedIndexes=1024 MaxNoOfAttributes=10000 [ndb_mgmd] HostName=192.168.1.2 DataDir=/usr/mysql-cluster/data [ndbd] HostName=192.168.1.3 DataDir=/usr/mysql-cluster/data [ndbd] HostName=192.168.1.4 DataDir=/usr/mysql-cluster/data [mysqld] HostName=192.168.1.3 [mysqld] HostName=192.168.1.4

 

此時就可以啟動mgm節點了,啟動命令如下:

bin/ndb_mgmd --config-file=/usr/mysql-cluster/config.ini --configdir=/usr/mysql-cluster

之后查看mgm節點狀態,命令如下:

bin/ndb_mgm -e show

步驟3 
注意:此步驟需要在192.168.1.3192.168.1.4分別執行一次。 
先上傳m.cnf配置文件到/usr/mysql-cluster下,其內容如下,其中user=root配置僅當mysql需要運行在root用戶下時才需要配置:

[mysqld]
character_set_server=utf8 basedir=/usr/mysql-cluster datadir=/usr/mysql-cluster/data ndbcluster ndb-connectstring=192.168.1.2 user=root [mysql_cluster] ndb-connectstring=192.168.1.2

然后初始化mysql:

scripts/mysql_install_db --basedir=/usr/mysql-cluster --datadir=/usr/mysql-cluster/data

 

最后啟動data節點和sql節點(注意必須先啟動兩台機器上的data節點,然后再啟動sql節點,因為sql節點啟動時需要依賴所有的data節點)。 
啟動data節點命令:bin/ndbd --defaults-file=my.cnf --initial 注意,僅僅第一次啟動data節點時需要附帶–initial參數,以后就不需要了。 
啟動sql節點命令:bin/mysqld_safe --defaults-file=my.cnf &

之后可在mgm節點即192.168.1.2機器上使用bin/ndb_mgm -e show命令查看到各個節點的連接順序

最后,如果需要停止各個整個集群系統,只需要在192.168.1.2機器上執行bin/ndb_mgm -e shutdown命令即可。然后在各個節點上可以看到ndbd進程已經終止了(mysqld進程並不會終止,因為mysqld進程也可以作為非集群服務存在,也就說各個sql節點是可以作為普通的mysql服務被調用的)

可能遇到的問題

  • 提示libaio.so.1這個庫不存在,只要執行yum install libaio.so*命令安裝所需的庫即可
  • 提示Data::Dumper模塊不存在,只要執行yum install perl-Data-Dumper命令安裝所需庫即可。

最后

    • 整個集群啟動的順序是mgm –> 所有的data節點 –>所有的sql節點。
    • 所有的sql節點是等效的,連接到任何一個都可以訪問到所有的數據。
    • 當某個data節點掛掉后,整個集群服務扔可正常運行,當data節點啟動后,其數據會被自動同步。
    • 所有的sql節點,各自的用戶名/密碼是獨立的,且初始密碼需要用戶手動設置。
    • 新建的表必須使用ndbcluster引擎才能使用到集群這個功能,否則與普通的mysql沒區別。


免責聲明!

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



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