ホームページ  >  記事  >  データベース  >  MySQL - MySQL Cluster クラスタ構築の詳細説明 (RPM インストール パッケージ デュアル管理センターベース)

MySQL - MySQL Cluster クラスタ構築の詳細説明 (RPM インストール パッケージ デュアル管理センターベース)

黄舟
黄舟オリジナル
2017-01-21 12:01:371342ブラウズ

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

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


2. 環境のクリーンアップとインストール

1) CentOS6 に付属の MySQL サービスをクリーンアップします。 .5 、最初のコマンドが実行できない 他のシステムでは実行できない場合は実行することをお勧めします

# 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.  
-----------------------------------------------------------

3. 管理ノードを構成します

1) 次のコマンドを実行します:

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

2) config.ini ファイルを構成します (添付ファイル
100.218:

config.ini

Configuration)情報:

[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  
[mgm]  
HostName=192.168.100.217  
NodeId=61  
[ndbd default]  
NoOfReplicas = 2  
DataMemory = 50M  
IndexMemory = 50M  
MaxNoOfTables = 1024  
MaxNoOfAttributes = 5000000  
MaxNoOfOrderedIndexes = 10000  
[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

100.217 構成ファイル
config.ini

[computer]  
Id=mgr-server-02  
HostName=192.168.100.217  
[mgm default]  
datadir=/var/lib/mysql-cluster  
[mgm]  
HostName=192.168.100.218  
NodeId=60  
[mgm]  
HostName=192.168.100.217  
NodeId=61  
[ndbd default]  
NoOfReplicas = 2  
DataMemory = 50M  
IndexMemory = 50M  
MaxNoOfTables = 1024  
MaxNoOfAttributes = 5000000  
MaxNoOfOrderedIndexes = 10000  
[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

実際、これら 2 つのファイルには、コンピューター構成の名前と識別 ID に大きな違いはありません

4。 SQL ノードとデータ ノードの構成

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,192.168.100.217  
[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,192.168.100.217

5. MySQL Cluster の初期起動コマンドとユーザー パスワードの変更調整: (起動シーケンスに厳密に従ってください)

1) 開始mysql-cluster

初期起動を実行する前に、2 台のマシンのファイアウォールが接続されていることを確認してください。閉じる (サービス iptables を停止するか、ファイアウォール ポートをアクセス可能に設定します。2 つのポートは通信ポート 1186 とデータ ポート 3306 です)

管理を開始します初めてのコンソール コマンド: ndb_mgmd -f /var/lib/mysql-cluster/config.ini (初期化に必要 --initial を追加)

バランシング ノード コマンドを開始します: ndbd --initial
データ ノード コマンドを開始します: mysqld_safe --defaults-file=/usr/my.cnf --explicit_defaults_for_timestamp &
my.cnf 一部のシステムでは、etc ディレクトリにあります。 次へ
起動プロセス中、コンソール出力全体を監視する必要があることに注意してください。エラー メッセージが見つかった場合は、エラー ログの内容に基づいて時間内に解決する必要があります。
------------------------------------------------- -------------------------------------------------- ------
すべてが正常であれば、次のコマンドを使用して管理コンソールを開きます: 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)  
id=61 @192.168.100.217 (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)  
id=61 @192.168.100.217 (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('新しいパスワード ');
ただし、この新しいパスワードはハッシュ値である必要があるため、次のメソッドを使用してパスワードのハッシュ値を取得します。 string
selectpassword('111111');
ただし、上記のコマンドを実行すると最初にパスワードを設定することになるのでイライラします。また戻ってきますので、別の場所のmysqlで実行してください
111111のハッシュ値は「*」です。 FD571203974BA9AFE270FE62151AE967ECA5E0AA"
SET PASSWORD = PASSWORD('*FD571203974BA9AFE270FE62151AE967ECA5E0AA') ;
とてもイライラします。セットアップ後もログインする必要があります。暗号文を使用してください。入力する暗号文を入力したら、次のコマンドを使用して強制します。ログインに平文を使用する

use mysql;  
delete from user;  
grant all on *.* to root@'%' identified by "111111" with grant option;  
flush privileges;  
quit;
然后,可以使用明文密码登陆了
几台装有SQL数据节点的服务器皆需要执行一遍上述命令;

6、当上面步奏都操作完成以后,测试cluster是否正常工作
1)简单功能测试
在218上进入mysql后执行如下:
create database clustertest;  
use clustertest;   
CREATE TABLE testtable(Count INT) ENGINE=NDBCLUSTER;

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

2) 災害復旧状況でデータが同期できるかどうかをテストします (1 つのデータベースが停止しています)。再起動時に、失われたデータは自動的に補充されますか? ?)

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

insert into testtable values (1);

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

select * from testtable;

データが存在する場合。見つかった場合は、関数が完了したことを意味します


7. クラスターを閉じます: (厳密に順序どおりに実行する必要があります)

データ ノードを閉じます: # mysqld stop (SQL ノードは mysqladmin shutdown を使用するか、それを閉じます)別の方法で。 )

管理ノードで実行します: # ndb_mgm -e shutdown

は管理ノードとデータ ノードを安全にシャットダウンします。

閉じた後、次のプロセス検出コマンドを使用して、プロセスが終了したかどうかを確認します:

# pgrep mysqld  
# ps aux | grep nbdb

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



8 クラスター ソリューションを開始します。再度:

クラスター全体を開始するシーケンスは、初期化の内容からいくつかのステートメントが削除されていることに注意してください:

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

备注:

1、mysql安装后,默认会自动启动的,每次启动cluster的时候,都需要先把mysql的服务关闭,太麻烦,于是可以执行如下命令(我出手有点狠):

chkconfig --level 123456 mysql off

2、防火墙问题,偷个懒,我懒得去一一开放端口,干脆把防火墙直接关了(极不推荐的做法)

chkconfig --level 123456 iptables off

参考相关文档:

MySQL Cluster config.ini文件配置详解:

    http://note.youdao.com/share/?id=376407a1136d2032afb6ef68aa39fba5&type=note

    http://note.youdao.com/share/?id=3906996cbe3298a22fbb5a2196d6cbed&type=note

MySQL Cluster 备份与恢复 http://www.linuxidc.com/Linux/2013-06/85295.htm

MySQL Cluster安装配置 http://www.linuxidc.com/Linux/2013-07/87705.htm

MySQL Cluster 3台机器搭建集群环境 DOC http://www.linuxidc.com/Linux/2013-01/78249.htm

MySQL Cluster7.2在线增加数据节点存在重大弊端 http://www.linuxidc.com/Linux/2012-08/67605.htm

搭建MySQL-Cluster集群架构   http://www.linuxidc.com/Linux/2014-05/102218.htm

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


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