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

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

Jan 21, 2017 am 11:56 AM

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

phpmyadminを開く方法 phpmyadminを開く方法 Apr 10, 2025 pm 10:51 PM

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

Navicatプレミアムの作成方法 Navicatプレミアムの作成方法 Apr 09, 2025 am 07:09 AM

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

NavicatでMySQLへの新しい接続を作成する方法 NavicatでMySQLへの新しい接続を作成する方法 Apr 09, 2025 am 07:21 AM

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

MySQLおよびSQL:開発者にとって不可欠なスキル MySQLおよびSQL:開発者にとって不可欠なスキル Apr 10, 2025 am 09:30 AM

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

単一のスレッドレディスの使用方法 単一のスレッドレディスの使用方法 Apr 10, 2025 pm 07:12 PM

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

SQLが行を削除した後にデータを回復する方法 SQLが行を削除した後にデータを回復する方法 Apr 09, 2025 pm 12:21 PM

データベースから直接削除された行を直接回復することは、バックアップまたはトランザクションロールバックメカニズムがない限り、通常不可能です。キーポイント:トランザクションロールバック:トランザクションがデータの回復にコミットする前にロールバックを実行します。バックアップ:データベースの定期的なバックアップを使用して、データをすばやく復元できます。データベーススナップショット:データベースの読み取り専用コピーを作成し、データが誤って削除された後にデータを復元できます。削除ステートメントを使用して注意してください:誤って削除されないように条件を慎重に確認してください。 WHERE句を使用します:削除するデータを明示的に指定します。テスト環境を使用:削除操作を実行する前にテストします。

See all articles