GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にMySQLクラスターをインストールして構成する方法

MySQL Clusterは、MySQL互換データベースに高可用性と低レイテンシーを提供するように設計されています。 MySQLクラスターテクノロジーは、NDB(ネットワークデータベース)およびNDBCLUSTERストレージエンジンを介して実装され、MySQLデータベースシステムにシェアードナッシングクラスタリングおよび自動シャーディングを提供します。シェアードナッシングアーキテクチャでは、各ノードに独自のメモリとディスクがあり、NFS、SANなどの共有ストレージの使用は推奨およびサポートされていません。

MySQLクラスターを実装するには、3種類のノードをインストールする必要があります。各ノードタイプは、独自のサーバーにインストールされます。コンポーネントは次のとおりです。

1.管理ノード-NDB_MGMD/MGM
クラスタ管理サーバーは、クラスタの他のノードを管理するために使用されます。新しいノードの作成と構成、クラスター上のノードの再起動、削除、またはバックアップを管理ノードから行うことができます。

2。 データノード-NDBD/NDB
これは、ノード間の同期とデータレプリケーションのプロセスが発生するレイヤーです。

3. SQLノード-MySQLD/API
アプリケーションがデータベースクラスターに接続するために使用するインターフェースサーバー。

このチュートリアルでは、centOS 7を使用したMySQLクラスターのインストールと構成について説明します。管理ノード、2つのデータノード、および2つのSQLノードを構成します。

前提条件
  • OSはCentOS7-64ビットです。
  • 5つのCentOSサーバーまたは仮想マシン。以下に示すように、ホスト名とIPアドレスを使用します。
    • 管理ノード
      db1 =192.168.1.120
    • データノード
      db2 =192.168.1.121
      db3 =192.168.1.122
    • SQLノード
      db4 =192.168.1.123
      db5 =192.168.1.124

ステップ1-管理ノードのセットアップ

最初のステップは、CentOS 7 db1で「管理ノード」を作成することです。 およびIP192.168.1.120 。 rootユーザーとしてdb1サーバーにログインしていることを確認してください。

A。 MySQLClusterソフトウェアをダウンロードする

MySQLサイトからwgetでダウンロードします。ここでは、CentOS7と互換性のある「RedHatEnterprise Linux 7 / Oracle Linux 7(x86、64ビット)、RPMバンドル」を使用しています。次にtarファイルを抽出します。

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B。パッケージのインストールと削除

MySQL Clusterのrpmパッケージをインストールする前に、 perl-Data-Dumperをインストールする必要があります。 これは、MySQL-Clusterサーバーに必要です。そして、 mariadb-libsを削除する必要があります MySQLクラスターをインストールする前に。

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

C。 MySQLクラスターをインストールする

次のrpmコマンドを使用してMySQLClusterパッケージをインストールします。

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

エラーがないことを確認してください。

D。 MySQLクラスターの構成

構成ファイル用の新しいディレクトリを作成します。 「/var/ lib/mysql-cluster」ディレクトリを使用します。

mkdir -p /var/lib/mysql-cluster

次に、「 config.ini」という名前のクラスター管理用の新しい構成ファイルを作成します。 "mysql-clusterディレクトリにあります。

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

以下に設定を貼り付けます:

[ndb_mgmd default]
# Directory for MGM node log files
DataDir=/var/lib/mysql-cluster
 
[ndb_mgmd]
#Management Node db1
HostName=192.168.1.120
 
[ndbd default]
NoOfReplicas=2      # Number of replicas
DataMemory=256M     # Memory allocate for data storage
IndexMemory=128M    # Memory allocate for index storage
#Directory for Data Node
DataDir=/var/lib/mysql-cluster
 
[ndbd]
#Data Node db2
HostName=192.168.1.121
 
[ndbd]
#Data Node db3
HostName=192.168.1.122
 
[mysqld]
#SQL Node db4
HostName=192.168.1.123
 
[mysqld]
#SQL Node db5
HostName=192.168.1.124

ファイルを保存して終了します。

E。管理ノードを開始します

次に、以下のコマンドで管理ノードを起動します。

ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini

結果は次のようになります:

MySQL Cluster Management Server mysql-5.6.28 ndb-7.4.10
2016-03-22 19:26:08 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
2016-03-22 19:26:08 [MgmtSrvr] INFO     -- Successfully created config directory

管理ノードが開始されました。これで、コマンド「ndb_mgm」を使用してノードを監視できます。

ndb_mgm
show

管理ノードがmysql-6.6およびndb-7.4で開始されていることがわかります。

ステップ2-MySQLクラスターデータノードをセットアップする

データノードには2台のCentOSサーバーを使用します。

  1. db2 =192.168.1.121
  2. db3 =192.168.1.122

A。 rootユーザーとしてログインし、MySQLClusterソフトウェアをダウンロードします

sshを使用してdb2サーバーにログインします:

ssh [email protected]

次に、MySQL Clusterパッケージをダウンロードして解凍します:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B。パッケージのインストールと削除

perl-Data-Dumperをインストールし、mariadb-libsを削除します:

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

C。 MySQLクラスターをインストールする

これで、次のrpmコマンドを使用してデータノードのMySQLクラスターパッケージをインストールできます。

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

エラーがないことを確認してください。

D。データノードの構成

viエディターを使用して/etcディレクトリーに新しい構成ファイルを作成します。

vi /etc/my.cnf

以下に構成を貼り付けます:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120     # IP address of Management Node
 
[mysql_cluster]
ndb-connectstring=192.168.1.120     # IP address of Management Node

ファイルを保存して終了します。

次に、管理ノードの構成ファイル「config.ini」で定義したデータベースデータ用の新しいディレクトリを作成します。

mkdir -p /var/lib/mysql-cluster

次に、データノード/ ndbdを起動します:

ndbd

結果:

2016-03-22 19:35:56 [ndbd] INFO     -- Angel connected to '192.168.1.120:1186'
2016-03-22 19:35:56 [ndbd] INFO     -- Angel allocated nodeid: 2

管理ノードip192.168.1.120に接続されたデータノードdb2。

E。 db3サーバーでステップ2.A-2.Dをやり直します。

2つのデータノードがあるため、2番目のデータノードで手順2.A〜2.Dをやり直してください。

ステップ3-SQLノードのセットアップ

このステップには、データベースへのアプリケーションアクセスを提供するSQLノードのセットアップが含まれています。 SQLノードには2台のCentOSサーバーを使用しています:

  1. db4 =192.168.1.123
  2. db5 =192.168.1.124

A。ログインしてMySQLクラスターをダウンロード

rootユーザーとしてdb4サーバーにログインします:

ssh [email protected]

そして、MySQL Clusterパッケージをダウンロードします:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B。パッケージのインストールと削除

perl-Data-Dumperをインストールし、MySQLClusterと競合するmariadb-libsを削除します。

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

C。 MySQLクラスターをインストールする

以下のrpmコマンドを使用して、MySQL Clusterサーバー、クライアント、および共有パッケージをインストールします。

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

D。 SQLノードを構成する

/etcディレクトリに新しいmy.cnfファイルを作成します。

vi /etc/my.cnf

そして、以下に構成を貼り付けます:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120       # IP address for server management node
default_storage_engine=ndbcluster     # Define default Storage Engine used by MySQL
 
[mysql_cluster]
ndb-connectstring=192.168.1.120       # IP address for server management node

ファイルを保存してエディタを終了します。

MySQLサーバーを起動してSQLノードを起動します:

service mysql start

E。 db5サーバーでステップ3.A-3.Dをやり直します。

2番目のSQLサーバー(db5)で手順3.A〜3.Dをやり直してください。

ステップ4-クラスターを監視する

クラスタのステータスを確認するには、管理ノードdb1にログインする必要があります。

ssh [email protected]

ndb_mgmコマンドを使用して、クラスタのステータスを確認できます。

ndb_mgm
ndb_mgm> show

もう1つの便利なコマンドは次のとおりです。

ndb_mgm -e "all status"
ndb_mgm -e "all report memory"

ステップ5-クラスターのテスト

新しいMySQLクラスターでテストを実行するには、SQLノードdb4またはdb5サーバーにログインする必要があります。

db4サーバーにログインします:

ssh [email protected]

.mysql_secret」に保存されているデフォルトのMySQLパスワードを変更します "ルートディレクトリ内のファイル:

cd ~
cat .mysql_secret

これは私のサンプルです:

# The random password set for the root user at Tue Mar 22 19:44:07 2016 (local time): qna3AwbJMuOnw23T

次に、以下のコマンドでパスワードを変更します。

mysql_secure_installation

古いmysqlパスワードを入力してから、新しいパスワードを入力し、Enterキーを押してすべてを確認します。

すべて完了したら、パスワードを使用してMySQLシェルにログインできます。

mysql -u root -p

ログイン後、ホスト「 @」で新しいrootユーザーを作成します "、外部からMySQLにアクセスできるようになります。

CREATE USER 'root'@'%' IDENTIFIED BY 'aqwe123';

aqwe123を置き換えます あなた自身の安全なパスワードで!これで、MySQLユーザーリストにホスト「@」が付いた新しいrootユーザーが表示されます。

select user, host, password from mysql.user;

そして、新しいrootユーザーにリモートノードからの読み取りおよび書き込みアクセスを許可します。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*94CC7BF027327993D738E11...(Encrypted PASSWORD)' WITH GRANT OPTION;

次に、db4サーバーから新しいデータベースを作成してみてください。データベースは、db5にも表示されます。

これは、クラスターデータレプリケーションをテストするための単なるサンプル結果です。

MySQLクラスタは、5つのサーバーノードを備えたCentOS7で正常にセットアップされました。

結論

MySQL Clusterは、MySQLデータベースに高可用性と冗長性を提供するテクノロジーです。 NDBまたはNDBCLUSTERをストレージエンジンとして使用し、MySQLデータベースにシェアードナッシングクラスタリングと自動シャーディングを提供します。クラスタを実装するには、管理ノード(MGM)、データノード(NDB)、SQLノード(API)の3つのコンポーネントが必要です。各ノードには、独自のメモリとディスクが必要です。 NFSなどのネットワークストレージを使用することはお勧めしません。 CentOS 7の最小限のシステムにMySQLクラスターをインストールするには、mariadb-libsパッケージを削除する必要があります。mariadb-libsはMySQL-Cluster-serverと競合し、perl-Data-Dumperパッケージをインストールする必要があります。これはMySQL-Clusterに必要です。 -サーバ。 MySQLクラスターは、複数のCentOSサーバーに簡単にインストールおよび構成できます。


Cent OS
  1. CentOS7にNginxをインストールして構成する方法

  2. CentOS7にNode.jsとNPMをインストールする方法

  3. CentOSにNode.jsとNPMをインストールする方法

  1. CentOS7にRedisをインストールして設定する方法

  2. CentOS7にGitLabをインストールして構成する方法

  3. CentOS7にZabbixをインストールして設定する方法

  1. CentOS7にRedmineをインストールして設定する方法

  2. CentOS8にNode.jsとnpmをインストールする方法

  3. CentOS8にRedisをインストールして設定する方法