ホームページ  >  記事  >  データベース  >  MySQL - MySQL Cluster クラスタ構築の詳細説明 (RPM インストール パッケージに基づく)

MySQL - MySQL Cluster クラスタ構築の詳細説明 (RPM インストール パッケージに基づく)

黄舟
黄舟オリジナル
2017-01-21 11:56:411205ブラウズ

1. MySQL-cluster 7.3.7 をダウンロードします

http://dev.mysql.com/downloads/cluster/

2. 環境のクリーニングとインストール

1) CentOS6.5 に付属の mysql サービスをクリーンアップします。 , 最初のコマンドを実行する必要はありません。他のシステムで動作しない場合でも、実行することをお勧めします

# yum -y remove mysql  
# rpm -qa | grep mysql*  
# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64

2) 環境の準備

フォルダーを作成します(次の 3 つのカテゴリに分けて作成します)対応するフォルダ)

存储节点:# mkdir /var/lib/mysql/data   
管理节点:# mkdir /var/lib/mysql-cluster    SQL节点:可不用  文件夹授权  
进程DIR:# mkdir /var/run/mysqld
使用如下的命令来变更权限保证可写入:  
# chmod -R 1777 /var/lib/mysql  
# chmod -R 1777 /var/run/mysqld  
# chmod -R 1777 /var/lib/mysql-cluster

3) インストールmysql-cluster


まずMySQL-Cluster-gpl-7.4.2-1.el6.x86_64.rpm-bundle.tar

# tar xvf MySQL-Cluster-gpl-7.4.2-1.el6.x86_64.rpm-bundle.tar

を解凍し、以下のコマンドを実行してインストールします。

# rpm -ivh MySQL-Cluster-server-gpl-7.3.4-1.el6.x86_64.rpm  
# rpm -ivh MySQL-Cluster-client-gpl-7.3.4-1.el6.x86_64.rpm

サーバーのインストール時には特に注意してください。 gpl パッケージの後、次のプロンプト メッセージが表示され、クラスター全体がインストールされた後の最初のスーパー アカウントのパスワードがファイル /root/.mysql_secret に存在することを思い出させます。

---------------------------------------------------------------------------------------------------------------------  
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !  
 You will find that password in '/root/.mysql_secret'.  
 You must change that password on your first connect,  
 no other statement but 'SET PASSWORD' will be accepted.  
 See the manual for the semantics of the 'password expired' flag.  
 Also, the account for the anonymous user has been removed.  
 In addition, you can run:  
  /usr/bin/mysql_secure_installation  
 which will also give you the option of removing the test database.  
 This is strongly recommended for production servers.  
 -----------------------------------------------------------

2. 管理ノードを設定します
1) 次のコマンドを実行します:

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

2) config.ini ファイルを設定します

[computer]  
 Id=mgr-server-01  
 HostName=192.168.100.218  
 [mgm default]  
 datadir=/var/lib/mysql-cluster  
 [mgm]  
 HostName=192.168.100.218  
 NodeId=60  
 ExecuteOnComputer=mgr-server-01  
 PortNumber=1186  
 ArbitrationRank=2  
 [ndbd default]  
 NoOfReplicas=2  
 DataMemory=500M  
 IndexMemory=500M  
 [ndbd]  
 HostName=192.168.100.217  
 DataDir=/var/lib/mysql  
 NodeId=1  
 [ndbd]  
 HostName=192.168.100.218  
 DataDir=/var/lib/mysql  
 NodeId=2  
 [mysqld]  
 HostName=192.168.100.217  
 NodeId=81  
 [mysqld]  
 HostName=192.168.100.218  
 NodeId=82

3. my.cnf ファイルを変更して追加します。以下の内容:

[client]  
 socket=/var/lib/mysql/mysql.sock  
 [mysqld]  
 max_connections=100  
 datadir=/var/lib/mysql  
 socket=/var/lib/mysql/mysql.sock  
 ndbcluster  
 ndb-connectstring=192.168.100.218  
 [mysqld_safe]  
 log-error=/var/log/mysqld.log  
 #pid-file=/var/run/mysqld/mysqld.pid  
 pid-file=/var/lib/mysql/mysqld.pid  
 [mysql_cluster]  
 ndb-connectstring=192.168.100.218

4. MySQL Cluster の初期起動コマンドとユーザーパスワード変更の調整: (起動シーケンスを厳守してください)

1) mysql-cluster を起動します
初期起動を実行する前に、2 つのファイアウォールが正常に動作していることを確認してください。マシンがオフになります (サービス iptables が停止または設定されます。特定のファイアウォール ポートがアクセス可能です。2 つのポートは通信ポート 1186 とデータ ポート 3306 です)
mgt コンソール コマンドを初めて開始します: ndb_mgmd -f /var/lib/mysql-cluster /config.ini
startバランスノードコマンド:ndbd - initial
startdata nodeコマンド:mysqld_safe =/etc/my.cnf-riblicit_defaults_for_timestamp&
コンソール出力全体を監視する必要があることに注意する必要があることに注意してください。起動プロセスでエラー メッセージが見つかった場合は、時間内に解決する必要があり、エラー ログの内容に従って解決する必要があります。
------------------------------------------------- -------------------------------------------------- ------
すべてが正常であれば、次のコマンドを使用して管理コンソールを開きます: ndb_mgm
# show
を実行して、次のように各ノードが完全に起動しているかどうかを確認します。各ノードが接続されているかどうかを確認します。接続されていないノードがある場合は、参照してください

ndb_mgm> show  
Connected to Management Server at: 192.168.100.218:1186  
Cluster Configuration  
---------------------  
[ndbd(NDB)] 2 node(s)  
id=1 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0)  
id=2 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0, *)  
[ndb_mgmd(MGM)] 1 node(s)  
id=60 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)  
[mysqld(API)] 2 node(s)  
id=81 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2)  
id=82 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)

以下に示すように、接続されていないノードがある場合、id=81 の行は接続されていないことを意味します。障害箇所を確認してください


ndb_mgm> show  
Cluster Configuration  
--------------------  
[ndbd(NDB)] 2 node(s)  
id=1 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0)  
id=2 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0, *)  
[ndb_mgmd(MGM)] 1 node(s)  
id=60 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)  
[mysqld(API)] 2 node(s)  
id=81 (not connected, accepting connect from 192.168.100.217)  
id=82 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)

2)パスワード

mysqld が正常に起動したら (pgrep mysqld を使用してプロセス ID を取得できます)、次のコマンドを使用して変更できます:

mysql -u root -p;

ランダムなパスワード (詳細については、/root/.mysql_secret ファイルを参照してください)。次のコマンドを使用してパスワードを変更します:


SET PASSWORD = PASSWORD('新密码');

ただし、この新しいパスワードはハッシュ値である必要があるため、次のメソッドを使用してパスワード文字列のハッシュ値を取得します


select password('111111');

ただし、上記を実行すると、コマンドを実行すると、最初にパスワードを設定することになりますが、イライラして戻ってきます。その後、別の場所の mysql に移動して実行します

111111 のハッシュ値は、「*FD571203974BA9AFE270FE62151AE967ECA5E0AA」です。
SET PASSWORD = PASSWORD('*FD571203974BA9AFE270FE62151A) E967ECA5E0AA');
そうですイライラします。設定後も、ログインするには暗号文を使用する必要があります。入力後、次のコマンドを使用して、プレーンテキストでログインする必要があります

use mysql;  
delete from user;  
grant all on *.* to root@'%' identified by "111111" with grant option;  
flush privileges;  
quit;

その後、ログインするためのプレーン テキストのパスワード

SQL データ ノードを備えた複数のサーバーは、上記のコマンドを 1 回実行する必要があります
5. 上記の手順が完了したら、クラスターが正常に動作しているかどうかをテストします
1) mysql を入力した後、簡単な機能テストを行います。 218、次のように実行します:

create database clustertest;  
use clustertest;   
CREATE TABLE testtable(Count INT) ENGINE=NDBCLUSTER;

注: ENGINE=NDBCLUSTER; エンジンは同期に NDBCLUSTER を使用する必要があります。そうでない場合、同期は実行されません。217 で、mysql を入力し、データベースとテーブルが正常に動作しているかどうかを確認します。自動的に作成されます。作成されれば成功です。失敗した場合は、環境構成を確認してください

2) 災害復旧状況でデータを同期できるかどうかをテストします (データベースが停止した場合、再起動するとデータは失われますか?)データは自動的に補完されます)

217でmysqlサービスを停止し、218で

insert into testtable values (1);

を実行して217のmysqlサービスを開始し、showを使用して217のデータベースノードが接続されていることを確認し、次のステートメントを実行します

select * from testtable;

場合data がある場合、関数が完了したことを意味します
6. クラスターをシャットダウンします: (順序に従って実行する必要があります)

データ ノードを閉じます: # mysqld stop (SQL ノードは mysqladmin shutdown でシャットダウンできます)または他の方法。 )

管理ノードで実行します: # ndb_mgm -e shutdown
は管理ノードとデータ ノードを安全にシャットダウンします。
閉じた後、次のプロセス検出コマンドを使用して、プロセスが終了したかどうかを確認します:

# pgrep mysqld  
# ps aux | grep nbdb

終了していない場合は、対応する pid を見つけて kill 操作を実行します
kill -9 プロセス番号

7. クラスター ソリューションを再度開始します。クラスター全体 順番に、いくつかのステートメントが初期化コンテンツから差し引かれていることに注意してください:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini  
ndbd  
mysqld_safe --defaults-file=/etc/my.cnf --explicit_defaults_for_timestamp &

备注:
1、mysql安装后,默认会自动启动的,每次启动cluster的时候,都需要先把mysql的服务关闭,太麻烦,于是可以执行如下命令(我出手有点狠):
    chkconfig --level 123456 mysql off
2、防火墙问题,偷个懒,我懒得去一一开放端口,干脆把防火墙直接关了
    chkconfig --level 123456 mysql off

以上就是MySQL之——MySQL Cluster集群搭建详解(基于RPM安装包)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。