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

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

Jan 21, 2017 pm 12:01 PM

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

ホット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 08, 2025 pm 07:15 PM

MySQLデータベースでは、ユーザーとデータベースの関係は、アクセス許可と表によって定義されます。ユーザーには、データベースにアクセスするためのユーザー名とパスワードがあります。許可は助成金コマンドを通じて付与され、テーブルはCreate Tableコマンドによって作成されます。ユーザーとデータベースの関係を確立するには、データベースを作成し、ユーザーを作成してから許可を付与する必要があります。

mysqlは支払う必要がありますか mysqlは支払う必要がありますか Apr 08, 2025 pm 05:36 PM

MySQLには、無料のコミュニティバージョンと有料エンタープライズバージョンがあります。コミュニティバージョンは無料で使用および変更できますが、サポートは制限されており、安定性要件が低く、技術的な能力が強いアプリケーションに適しています。 Enterprise Editionは、安定した信頼性の高い高性能データベースを必要とするアプリケーションに対する包括的な商業サポートを提供し、サポートの支払いを喜んでいます。バージョンを選択する際に考慮される要因には、アプリケーションの重要性、予算編成、技術スキルが含まれます。完璧なオプションはなく、最も適切なオプションのみであり、特定の状況に応じて慎重に選択する必要があります。

RDS MySQL Redshift Zero ETLとの統合 RDS MySQL Redshift Zero ETLとの統合 Apr 08, 2025 pm 07:06 PM

データ統合の簡素化:AmazonrdsmysqlとRedshiftのゼロETL統合効率的なデータ統合は、データ駆動型組織の中心にあります。従来のETL(抽出、変換、負荷)プロセスは、特にデータベース(AmazonrdsmysQlなど)をデータウェアハウス(Redshiftなど)と統合する場合、複雑で時間がかかります。ただし、AWSは、この状況を完全に変えたゼロETL統合ソリューションを提供し、RDSMYSQLからRedshiftへのデータ移行のための簡略化されたほぼリアルタイムソリューションを提供します。この記事では、RDSMysQl Zero ETLのRedshiftとの統合に飛び込み、それがどのように機能するか、それがデータエンジニアと開発者にもたらす利点を説明します。

高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? 高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? Apr 08, 2025 pm 06:03 PM

MySQLデータベースパフォーマンス最適化ガイドリソース集約型アプリケーションでは、MySQLデータベースが重要な役割を果たし、大規模なトランザクションの管理を担当しています。ただし、アプリケーションのスケールが拡大すると、データベースパフォーマンスのボトルネックが制約になることがよくあります。この記事では、一連の効果的なMySQLパフォーマンス最適化戦略を検討して、アプリケーションが高負荷の下で効率的で応答性の高いままであることを保証します。実際のケースを組み合わせて、インデックス作成、クエリ最適化、データベース設計、キャッシュなどの詳細な主要なテクノロジーを説明します。 1.データベースアーキテクチャの設計と最適化されたデータベースアーキテクチャは、MySQLパフォーマンスの最適化の基礎です。いくつかのコア原則は次のとおりです。適切なデータ型を選択し、ニーズを満たす最小のデータ型を選択すると、ストレージスペースを節約するだけでなく、データ処理速度を向上させることもできます。

MySQLのクエリ最適化は、特に大規模なデータセットを扱う場合、データベースのパフォーマンスを改善するために不可欠です MySQLのクエリ最適化は、特に大規模なデータセットを扱う場合、データベースのパフォーマンスを改善するために不可欠です Apr 08, 2025 pm 07:12 PM

1.正しいインデックスを使用して、データの量を削減してデータ検索をスピードアップしました。テーブルの列を複数回検索する場合は、その列のインデックスを作成します。あなたまたはあなたのアプリが基準に従って複数の列からのデータが必要な場合、複合インデックス2を作成します2。選択した列のみを避けます。必要な列のすべてを選択すると、より多くのサーバーメモリを使用する場合にのみサーバーが遅くなり、たとえばテーブルにはcreated_atやupdated_atやupdated_atなどの列が含まれます。

酸性特性を理解する:信頼できるデータベースの柱 酸性特性を理解する:信頼できるデータベースの柱 Apr 08, 2025 pm 06:33 PM

データベース酸属性の詳細な説明酸属性は、データベーストランザクションの信頼性と一貫性を確保するための一連のルールです。データベースシステムがトランザクションを処理する方法を定義し、システムのクラッシュ、停電、または複数のユーザーの同時アクセスの場合でも、データの整合性と精度を確保します。酸属性の概要原子性:トランザクションは不可分な単位と見なされます。どの部分も失敗し、トランザクション全体がロールバックされ、データベースは変更を保持しません。たとえば、銀行の譲渡が1つのアカウントから控除されているが別のア​​カウントに増加しない場合、操作全体が取り消されます。 TRANSACTION; updateaccountssetbalance = balance-100wh

MySQLのユーザー名とパスワードを入力する方法 MySQLのユーザー名とパスワードを入力する方法 Apr 08, 2025 pm 07:09 PM

MySQLのユーザー名とパスワードを入力するには:1。ユーザー名とパスワードを決定します。 2。データベースに接続します。 3.ユーザー名とパスワードを使用して、クエリとコマンドを実行します。

mysqlを表示する方法 mysqlを表示する方法 Apr 08, 2025 pm 07:21 PM

次のコマンドでmysqlデータベースを表示します。サーバーに接続します:mysql -u username -pパスワードrun showデータベース。すべての既存のデータベースを取得するコマンド[データベース]を選択します。データベース名を使用します。テーブルを表示:表を表示します。テーブル構造を表示:テーブル名を説明してください。データを表示:[テーブル名]から[ *]を選択します。

See all articles