GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04にMySQLクラスターをインストールする方法

MySQL Clusterは、MySQLデータベースに高可用性を提供するテクノロジーです。データベースストレージエンジンとしてNDB(ネットワークデータベース)またはNDBCLUSTERを使用します。 MySQL Clusterは、単一障害点のないマルチマスターACIDアーキテクチャとして設計されており、自動シャーディング(パーティション化)を使用して読み取りおよび書き込みプロセスをスケールアウトします。

MySQLクラスターを実装するには、3つの異なるタイプのノードが必要です。

  • 管理ノード( ndb_mgmd
    • クラスターの監視と構成に使用されます。
  • データノード( ndbd
    • これらのノードは、自動シャーディングを提供し、レプリケーションを処理できるデータを保存するために使用されます。
  • SQLノード( mysqld
    • すべてのノードに接続するためのMySQLServerインターフェース。

このチュートリアルでは、Ubuntu 16.04 LTS(Xenial Xerus)に「MySQLクラスター」をインストールする方法を紹介します。

前提条件

  • Ubuntuサーバー16.04を備えた4つのノード
  1. 192.168.1.11管理ノード
  2. 192.168.1.12 data-node1
  3. 192.168.1.13 data-node2
  4. 192.168.1.14 sql-node
  • ノードのルート権限。

ステップ1-管理ノードのインストールと構成

このステップでは、クラスターの管理ノードをIPアドレス192.168.1.11でインストールします。 MySQLクラスターソフトウェアをインストールし、クラスターの管理ノードとして構成します。

sshを使用して管理ノードにログインします:

ssh [email protected]
TYPE YOUR PASSWORD

A。 MySQLクラスタ管理ノードをインストールする

ここでMySQLクラスターサイトを開き、オプション' Linux-generic を選択します 'をクリックし、'ダウンロードをクリックして64ビットパッケージをダウンロードします。 'ボタン。

wgetを使用してMySQLクラスターパッケージをダウンロードし、解凍します。

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz

ディレクトリの名前をmysqlに変更します:

mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

mysqlディレクトリに移動し、クラスタ管理コマンド' ndb_mgmdの2つのバイナリファイルをコピーします。 およびndb_mgm '/ usr / local / bin /'ディレクトリに移動し、chmodコマンドで実行可能にします。

cd ~/mysql/
cp bin/ndb_mgm* /usr/local/bin/
chmod +x /usr/local/bin/ndb_mgm*

B。 MySQLクラスタ管理ノードを構成する

'/ var / lib/'ディレクトリに構成ファイル用の新しいディレクトリ'mysql-cluster'を作成して、管理ノードを構成します。

ディレクトリ「mysql-cluster」を作成し、ディレクトリに新しい構成「config.ini」を作成します:

mkdir -p /var/lib/mysql-cluster/
vim /var/lib/mysql-cluster/config.ini

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

[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M

[mysqld default]

[ndb_mgmd default]

[tcp default]

# Cluster Control / Management node
[ndb_mgmd]
hostname=192.168.1.11

# Data Node 1
[ndbd]
hostname=192.168.1.12
DataDir= /var/lib/mysql-cluster

# Data Node 1
[ndbd]
HostName=192.168.1.13
DataDir=/var/lib/mysql-cluster

# SQL Node
[mysqld]
hostname=192.168.1.14

# If you to add new SQL Node
[mysqld]

設定に合わせて、管理用にndb_mgmd、データノード用にndbd、SQLノード用にmysqldのIPアドレスを変更します。

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

次に、以下のコマンドを使用して管理ノードプロセスを開始します。

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/

' /etc/rc.local にコマンドを追加して、起動時に起動するようにします。 'ファイル:

echo 'ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/' >> /etc/rc.local

結果が表示された場合:

MySQL Cluster Management Server mysql-5.6.31 ndb-7.4.12

その後、管理ノードプロセスが実行されます。

別のコマンドで管理ノードを確認してください:

# Checking port 1186 used by ndb_mgmd
netstat -plntu

# Checking the management node is ready
ndb_mgm
show

ステップ2-データノードのインストールと構成

このステップでは、MySQLクラスターソフトウェアをインストールし、データノードとして構成します。 2台のubuntu16.04サーバーをデータノードとして使用します。IPアドレスが192.168.1.12のdata-node1とIPアドレスが192.168.1.13のdata-node2です。

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

ssh [email protected]

A。データノードにMySQLクラスターをインストールする

MySQLクラスタソフトウェアをインストールする前に、新しいパッケージ' libaio1をインストールする必要があります。 'そして新しいユーザーとグループを作成しますmysql 。そのためのルートとして以下のコマンドを実行します:

apt-get install libaio1
groupadd mysql
useradd -g mysql mysql

次に、MySQLクラスターパッケージをダウンロードします' Linux-Generic '、ディレクトリを抽出してmysqlに名前を変更します。

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

'mysql'ディレクトリを'/ usr / localに移動します /'そしてそのディレクトリに移動します。

mv mysql /usr/local/
cd /usr/local/mysql/

システムデータベースを作成するためのスクリプトを実行します:

./scripts/mysql_install_db --user=mysql

エラーがない場合は、mysqlサービスファイルを' /etc/init.dにコピーします。 'ディレクトリを作成し、起動時に実行するmysql開始スクリプトを追加します。

cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql

次に、すべてのmysqlバイナリコマンドを' / usr / local / binに移動します 'ディレクトリを作成し、新しいシンボリックリンクを作成します。

mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/

mysqlディレクトリの所有者をユーザーrootおよびグループmysqlに変更し、データディレクトリを所有者としてmysqlに変更します。

chown -R root:mysql .
chown -R mysql data

B。 MySQLクラスタデータノードを構成する

新しいmysql構成ファイルを作成します'my.cnf 'with vim:

vim /etc/my.cnf

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

# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql

# Run ndb storage engine
ndbcluster
# IP address management node
ndb-connectstring=192.168.1.11

[mysql_cluster]
# IP address management node
ndb-connectstring=192.168.1.11

# MySQL Pid and Log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

保存して終了します。

データノード用の新しいディレクトリを作成し、所有権をmysqlユーザーに変更します。

mkdir -p /var/lib/mysql-cluster/
chown -R mysql /var/lib/mysql-cluster

C。データノードでMySQLを起動します

以下のコマンドでmysqlサービスを開始します:

ndbd --initial
systemctl start mysql

エラーがないことを確認してください。結果は以下のとおりです(data-node2):

データノード上のMySQLが起動します。これで、次のコマンドを使用してMySQLパスワードを構成できます。

mysql_secure_installation

またはMySQLシェルにアクセスします。

mysql -u root -p


' data-node2でこの手順をやり直してください 'サーバーのIPアドレス192.168.1.13。

ステップ3-SQLノードのインストールと構成

このステップでは、MySQL Clusterソフトウェアをインストールし、SQLノードとして構成します。このノードは、データノード上のデータベースにアクセスするために使用されます。インストールプロセスはデータノードと同じですが、SQLノードでndbdサービスを実行する必要はありません。

sshを使用してSQLノードにログインします:

ssh [email protected]

A。 SQLノードにMySQLクラスターをインストールする

libaio1パッケージをインストールし、新しいユーザーとグループmysqlを作成します:

apt-get install libaio1
groupadd mysql
useradd -g mysql mysql

サイトからmysqlクラスターパッケージをダウンロードし、抽出して名前を変更します:

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/
>

mysqlディレクトリを移動します:

mv mysql /usr/local/
cd /usr/local/mysql/

mysql_install_dbを実行します スクリプト:

./scripts/mysql_install_db --user=mysql

サービスファイルをコピーして、起動時に開始するように追加します:

cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql

すべてのmysqlバイナリを'/ usr / local / binに移動します 'ディレクトリ:

mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/

すべてのファイルとディレクトリの所有者を変更します:

chown -R root:mysql .
chown -R mysql data

B。 MySQLクラスターSQLノードの構成

新しいmy.cnfを作成します vimを含む構成ファイル:

vim /etc/my.cnf

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

# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql

# Run ndb storage engine
ndbcluster
# IP address management node
ndb-connectstring=192.168.1.11

[mysql_cluster]
# IP address management node
ndb-connectstring=192.168.1.11

# MySQL Pid and Log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

保存して終了します。

C。 SQLノードを起動します

systemctlコマンドを使用してmysqlサービスを開始し、SQLノードを開始します。

systemctl start mysql

SQLノードが起動し、MySQLのパスワードを設定できるようになりました。

mysql_secure_installation

ステップ4-テスト

SQLノードから新しいデータベースを作成するためのテスト。

mysql -u root -p
TYPE PASSWORD


create database nanana;

データベースがデータノードサーバーに複製されていることを確認します。
ノードがオフの場合、別のノードがSQLノードからの接続を処理します。

mysql -u root -p
TYPE PASSWORD


show databases;

管理ノードからのクラスターステータスの確認:

ndb_mgm
show

ステップ5-追加のヒント

クラスタの安全な再起動とシャットダウンを実行します。

クラスタ管理ノードに移動し、以下のコマンドを入力してクラスタをシャットダウンします。

ndb_mgm
shutdown

このコマンドは、データノード上のすべてのndbサービスをシャットダウンします。

クラスタを再起動する場合は、管理ノードで以下のコマンドを実行できます。

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir =/ var / lib / mysql-cluster /

そして、すべてのデータノードで以下のコマンドを実行します。

ndbd
systemctl start mysql

次に、SQLノードでmysqlサービスを開始します。

systemctl start mysql

これで、MySQLクラスターが再び実行されます。


Ubuntu
  1. Ubuntu18.04にMySQL8.0をインストールする方法

  2. Ubuntu20.04にMySQLをインストールする方法

  3. Ubuntu16.04にNode.jsをインストールする方法

  1. Ubuntu18.04にMySQLをインストールする方法

  2. Ubuntu18.04にMySQL8.0をインストールする方法

  3. UbuntuにMySQLをインストールする方法

  1. UbuntuにMySQLサーバーをインストールする方法

  2. Ubuntu18.04にMySQL8.0をインストールする方法

  3. Ubuntu22.04LTSにNode.jsをインストールする方法