MySQL - MySQL Cluster クラスタ構築の詳細説明 (RPM インストール パッケージ デュアル管理センターベース)
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 ノードとデータ ノードの構成
[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
初期起動を実行する前に、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 を取得できます)、次のコマンドを使用して変更できます:
ランダム パスワード (詳細については /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. クラスターを閉じます: (厳密に順序どおりに実行する必要があります)
管理ノードで実行します: # 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)!

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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