MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装

MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装

実験環境:

1. CentOS 7 サーバー 3 台

2. mysql5.7.26 (3台のマシンはすべてyum経由でインストールされています)

サーバーリスト

7.100.222.111マスター
47.103.211.5奴隷1
47.103.98.221奴隷2

MySQLをまだインストールしていない場合は、インストールチュートリアルをご覧ください: MySQLのインストール

1. 概要:

アーキテクチャ図:

この種のアーキテクチャはスタートアップ企業でよく使用され、その後の拡張にも便利です。

特徴:

1. 読書のプレッシャーを軽減できます。

2. 低コスト、迅速、便利な導入

3. 読み取りと書き込みの分離

4. スレーブを時間内に追加することで、データベースの読み取り負荷を軽減することもできます。

5. メインデータベースの単一障害点

6. データの一貫性の問題(同期の遅延が原因)

7. ホストがダウンすると書き込み操作は実行できなくなります

2. クラスターの構築

1. 設定ファイルを変更する

次のコマンドを使用して、3 つのサーバー上の構成ファイルをそれぞれ変更します。

$ vim /etc/my.cnf

3 つのサーバーの /etc/my.cnf MySQL 構成ファイルにそれぞれ次の内容を追加します。

マセター奴隷1奴隷2

サーバーID=1

#メインデータベースのbinlogログを開く

ログ bin = /var/lib/mysql/mysql-bin

サーバーID=2サーバーID=3

2. マスターデータベースにレプリケーションユーザーを作成する

mysqlコマンドの下に次のコマンドを入力して、スレーブライブラリ(スレーブ)のユーザーを作成し、マスターライブラリ(マスター)をコピーします。

mysql> '123456' で識別される 'test'@'%' に *.* 上のレプリケーション スレーブを許可します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)
 
mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

3. スレーブデータベースをマスターデータベースに関連付ける

マスターライブラリのステータスを表示するには、次のコマンドを使用します。

mysql> マスターステータスを表示します。

以下の情報を出力します。もちろん、あなたの情報は私のものとは異なる場合があります。

mysql> マスターステータスを表示します。
+------------------+----------+--------------+------------------+------------------+
| ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+------------------+
| mysql-bin.000002 | 5141037 | | | |
+------------------+----------+--------------+------------------+------------------+
セット内の 1 行 (0.00 秒)

上記の結果からわかるように、ここではファイルと位置のみを確認する必要があります。他の 2 つはホワイトリストとブラックリストで、どのデータベースが同期され、どのデータベースが同期されないかを意味します。これらは必要に応じて設定できます。上記の最初の 2 つのフィールドを記録した後 ()。

2 つのスレーブで次のコマンドを実行します。

mysql> マスターを、master_host='47.100.222.111'、master_port=3306、master_user='test'、master_password='123456'、master_log_file='mysql-bin.000002'、master_log_pos=5141037 に変更します。
 
mysql> 権限をフラッシュします。
 
mysql> スレーブを起動します。

実行が完了したら、スレーブ ライブラリで次のステートメントの実行を続行します。

mysql> スレーブステータスを表示します\G;

以下の情報が出力されます。

************************** 1. 行 ****************************
Slave_IO_State: マスターがイベントを送信するのを待機中
マスターホスト: 47.100.225.121
Master_User: ヘルパー
マスターポート: 3306
接続再試行: 60
マスターログファイル:mysql-bin.000002
読み取りマスターログ位置: 5141037
リレーログファイル: slave1-relay-bin.000003
リレーログ位置: 5140628
リレーマスターログファイル: mysql-bin.000002
スレーブIO実行中: はい
スレーブSQL実行中: はい
レプリケート_Do_DB:
レプリケート_無視_DB:
----------以下省略

Slave_IO_Running: と Slave_SQL_Running: の両方が YES の場合、構成は成功します。

この時点で、マスター 1 台とスレーブ 2 台の構築は完了しており、マスター 1 台とスレーブ複数台のインストールも同様です。マスター データベース上にデータベースまたはテーブルを作成すると、スレーブ データベースがそれを複製します。

上記は、編集者が紹介したMySQLクラスタの1マスター複数スレーブアーキテクチャの詳細な説明と統合です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL 構成マスタースレーブサーバー (マスター 1 台とスレーブ複数台)
  • Mysql 1マスターと複数スレーブの導入の実装手順

<<:  HTMLからReactを実装する方法を教えます

>>:  Centos 用の rpm パッケージのカスタマイズと yum リポジトリの構築に関するチュートリアル

推薦する

Vue でコミュニケーションを実装する 8 つの方法

目次1. コンポーネント通信1. Props 親コンポーネント ---> 子コンポーネント通信...

img usemap 属性 中国地図リンク

HTML img タグ: Web ページに導入される画像を定義します。興味深い usemap 属性も...

CSS3 とテーブルタグを使用して円軌道アニメーションを実装するためのサンプルコード

html: 実際には、テーブルタグに従っていくつかの実線の円 div を正六角形に配置し、div コ...

LinuxでIPアドレスを手動で設定するための詳細な手順

目次1.まずネットワークカードの設定ディレクトリに入る2. ifcfg-ens33ネットワークカード...

Linux サーバーのスクリプトを自動的にバックアップする方法 (mysql、添付ファイルのバックアップ)

1.backup.shスクリプトファイルを作成する #!/bin/sh ソースフォルダ=/データ ...

Vue+element ui はアンカーの配置を実現します

この記事では、アンカー配置を実現するためのVue +要素UIの具体的なコードを例として紹介します。具...

Linuxで同一ファイルを見つける方法

コンピュータを使用すると、システム内に大量のゴミが生成されます。最も一般的なケースは、同じファイルが...

Vueは双方向データバインディングを実装します

この記事の例では、双方向データバインディングを実装するためのVueの具体的なコードを参考までに共有し...

MySQL 8.0 における非同期レプリケーションの 3 つの方法について簡単に説明します。

この実験では、空のデータベース、オフライン、オンラインの 3 つのモードで、1 つのマスターと 2 ...

Vue3.0プロジェクトの構築と利用プロセス

目次1. プロジェクト構築2: ディレクトリ構造3: コンポジションAPI 4: 基本的な使い方:最...

Git サーバーを使用してデバッグ ブランチを表示し、修正する方法を 1 日 1 分で学習します。

デバッグブランチプロジェクトの通常の開発中に、以前にリリースされたバージョンにバグがある場合がありま...

Dockerはポートマッピングを設定しますが、ソリューションにアクセスできません

#docker ps チェック、すべてのポートがマップされています コンテナID イメージ コマンド...

vuex で履歴を実装するためのサンプルコード

私は最近、ユーザー操作を元に戻す、またはやり直す機能を備えたビジュアル操作プラットフォームを開発して...

JavaScript でプロトタイプ パターンを実装する方法

概要プロトタイプ パターンは、プロトタイプ インスタンスによって作成されるオブジェクトの型を指し、こ...

Win10 での MySQL 8.0.15 のインストールと設定のグラフィック チュートリアル

この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...