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.2184. 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;
217でmysqlサービスを停止し、218で
insert into testtable values (1);
select * from testtable;
場合data がある場合、関数が完了したことを意味します
6. クラスターをシャットダウンします: (順序に従って実行する必要があります)
管理ノードで実行します: # ndb_mgm -e shutdown
は管理ノードとデータ ノードを安全にシャットダウンします。
閉じた後、次のプロセス検出コマンドを使用して、プロセスが終了したかどうかを確認します:
# pgrep mysqld # ps aux | grep nbdb
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)!