LoginSignup
1
1

More than 3 years have passed since last update.

CentOS7+MySQL Cluster 7.5.13の 環境構築メモメモ

Last updated at Posted at 2019-04-17

はじめに

 仕事でMySQL Cluster使う事が決まったので最新版で環境構築を行なったのでメモ

参考URL

 日本語は7.4のやつしか無い
 https://dev.mysql.com/doc/refman/5.6/ja/mysql-cluster-installation.html

 英語 ←☆結果これ☆ 7.4と7.5で設定ファイルの記載方法が異なるので結果ココを読む必要がある。
 https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-installation.html

環境

 ちょっぱやで作りたかったのでVagrantで環境構築(Vagrantは相性とかあるのでバージョンは以下)
 Vagrant Version:2.2.4
 VertualBox Version:6.0.4

 設定ファイルはこんな感じ。

  ### server1の設定内容
  config.vm.define "d1" do |server|
    server.vm.hostname = config.vm.box + "-d1" + ".vagrant"
    server.vm.network "private_network", ip: "192.168.200.101", host: "52001"
    config.vm.provider "virtualbox" do |vb|
      ### virtualbox上で表示される名前
      vb.name = config.vm.box + "_d1"
      vb.customize ["modifyvm", :id, "--memory", "2048"]
      vb.customize ["modifyvm", :id, "--cpus", "2"]
    end
  end
  ### server2の設定内容
  config.vm.define "d2" do |server|
    server.vm.hostname = config.vm.box + "-d2" + ".vagrant"
    server.vm.network "private_network", ip: "192.168.200.102", host: "52002"
    config.vm.provider "virtualbox" do |vb|
      ### virtualbox上で表示される名前
      vb.name = config.vm.box + "_d2"
      vb.customize ["modifyvm", :id, "--memory", "2048"]
      vb.customize ["modifyvm", :id, "--cpus", "1"]
    end
  end
  ### server0の設定内容
  config.vm.define "s0" do |server|
    server.vm.hostname = config.vm.box + "-s0" + ".vagrant"
    server.vm.network "private_network", ip: "192.168.200.200", host: "53001"
    config.vm.provider "virtualbox" do |vb|
      ### virtualbox上で表示される名前
      vb.name = config.vm.box + "_s0"
      vb.customize ["modifyvm", :id, "--memory", "2048"]
      vb.customize ["modifyvm", :id, "--cpus", "1"]
    end
  end
  ### serverMの設定内容
  config.vm.define "sM" do |server|
    server.vm.hostname = config.vm.box + "-sM" + ".vagrant"
    server.vm.network "private_network", ip: "192.168.200.100", host: "52000"
    config.vm.provider "virtualbox" do |vb|
      ### virtualbox上で表示される名前
      vb.name = config.vm.box + "_sM"
      vb.customize ["modifyvm", :id, "--memory", "2048"]
      vb.customize ["modifyvm", :id, "--cpus", "1"]
    end
  end

構成

 サイトで推奨している最小構成で構築(こんな想定)
 sM:192.168.200.100:管理サーバ(MGMノード)
 s0:192.168.200.200:管理サーバ(SQLノード)
 d1:192.168.200.101:データノードA(NDBDノード)
 d2:192.168.200.102:データノードB(NDBDノード)

インストールパッケージ

 今回はRPMパッケージでインストール(パッケージはこれ(RPMのバンドル):wgetとかで持ってくる。)
https://cdn.mysql.com//Downloads/MySQL-Cluster-7.5/mysql-cluster-community-7.5.13-1.el7.x86_64.rpm-bundle.tar

確認

SSHの疎通確認

ssh 192.168.200.100 -l root
ssh 192.168.200.200 -l root
ssh 192.168.200.101 -l root
ssh 192.168.200.102 -l root
※passwordは全てvagrant

SCPでコピー

・管理サーバ(MGMノード)
 MySQL-Cluster-management-server-XXXXXX.rpm
・管理サーバ(SQLノード)
 MySQL-Cluster-server-XXXXXX.rpm
 → MySQL-Cluster-client-XXXXXX.rpm
   → MySQL-Cluster-common-XXXXXX.rpm
   → MySQL-Cluster-lib-XXXXXX.rpm
・データノード(NDBDノード)
 MySQL-Cluster-data-node-XXXXXX.rpm

RPMインストール

 rpm -Uhv XXX.rpm

注意

 管理サーバ(SQLノード)でclientのRPMが入らない。。(client)
 perl-DBIとperl-Class-MethodMakerが必要。
 perl-DBIは、yumで入れた。
 perl-Class-MethodMakerは、wgetでRPM落としてきてインストール。
 http://repo.openfusion.net/centos7-x86_64//perl-Class-MethodMaker-2.21-1.of.el7.x86_64.rpm

設定

設定ファイル

 全てのサーバに配布

/etc/my.cnf
[mysqld]
# Options for mysqld process:
ndbcluster                      # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=192.168.200.100  # location of management server

ディレクトリ作成

mkdir -p /usr/local/mysql/data

ディレクトリ作成

 管理ノードで設定ファイル作成

% mkdir /var/lib/mysql-cluster
% cd /var/lib/mysql-cluster
% vi config.ini

config.ini
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2    # Number of replicas
DataMemory=80M    # How much memory to allocate for data storage
IndexMemory=18M   # How much memory to allocate for index storage
                  # For DataMemory and IndexMemory, we have used the
                  # default values. Since the "world" database takes up
                  # only about 500KB, this should be more than enough for
                  # this example NDB Cluster setup.
ServerPort=2202   # This the default value; however, you can use any
                  # port that is free for all the hosts in the cluster
                  # Note1: It is recommended that you do not specify the port
                  # number at all and simply allow the default value to be used
                  # instead
                  # Note2: The port was formerly specified using the PortNumber
                  # TCP parameter; this parameter is no longer available in NDB
                  # Cluster 7.5.

[ndb_mgmd]
# Management process options:
HostName=192.168.200.100          # Hostname or IP address of MGM node
DataDir=/var/lib/mysql-cluster  # Directory for MGM node log files

[ndbd]
# Options for data node "d1":
                                # (one [ndbd] section per data node)
HostName=192.168.200.101          # Hostname or IP address
NodeId=2                        # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[ndbd]
# Options for data node "d2":
HostName=192.168.200.102          # Hostname or IP address
NodeId=3                        # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[mysqld]
# SQL node options:
HostName=192.168.200.200          # Hostname or IP address
                                # (additional mysqld connections can be
                                # specified for this node for various
                                # purposes such as running ndb_restore)

起動

管理ノード起動

% ndb_mgmd -f /var/lib/mysql-cluster/config.ini 
MySQL Cluster Management Server mysql-5.7.25 ndb-7.5.13

データノード起動

% ndbd
2019-04-15 08:08:47 [ndbd] INFO     -- Angel connected to '192.168.200.100:1186'
2019-04-15 08:08:47 [ndbd] INFO     -- Angel allocated nodeid: 2

起動しない時は管理ノードなどのFireWallをOFFにする
CentOS7ならこれでいける。

% systemctl stop iptables
% systemctl disable iptables
% systemctl status iptables

起動確認

 確認にはndb_mgmが必要。(今回入れたのはSQLノードなのでSQLノードで確認)

% ndb_mgm
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2    @192.168.200.101  (mysql-5.7.25 ndb-7.5.13, Nodegroup: 0, *)
id=3    @192.168.200.102  (mysql-5.7.25 ndb-7.5.13, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.200.100  (mysql-5.7.25 ndb-7.5.13)

[mysqld(API)]   1 node(s)
id=4    @192.168.200.200  (mysql-5.7.25 ndb-7.5.13)

管理ノードにもclientを入れたほうが良さそう?

停止

停止もndb_mgmを使う

% ndb_mgm -e shutdown

とりあえず以上。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1