MySQL 5.7 クラスタ構成手順

MySQL 5.7 クラスタ構成手順

今回対象とするMySQLのバージョンは5.7です。まずはサーバーAとサーバーBにそれぞれMySQLをインストールします。yumでインストールするか、wgetでダウンロードして直接コンパイルしてインストールすることもできます。インストール方法は多数ありますが、確実に成功させる必要があります。

1. サーバーAのmy.cnfファイルを変更する

vim /etc/my.cnf

次の内容を追加します。

サーバーID=1
自動増分オフセット=1
自動増分_増分=2
gtid_mode=オン
強制GTID一貫性=オン
ログ bin = mysql bin

2. サーバーBのmy.cnfファイルを変更する

vim /etc/my.cnf

次の内容を追加します。

サーバーID=2
自動増分オフセット=1
自動増分_増分=2
gtid_mode=オン
強制GTID一貫性=オン
ログ bin = mysql bin

3. MySQLサーバーAにサーバーBからのアクセス用にレプリケーションユーザーを作成する

'password' で識別されるユーザー B@'IP' を作成します。
*.* 上のレプリケーションスレーブを B@'server IP' に付与します。

4. サーバーBのMySQLでサーバーAからのアクセス用のレプリケーションユーザーを作成する

'password' で識別されるユーザー A@'IP' を作成します。
*.* のレプリケーションスレーブを A@'password' に付与します。

5. サーバーBのMySQLでマスタースレーブ構成を実行し、Aをマスター、Bをスレーブにします。

マスターを、master_host='IP'、master_user='B'、master_password='?Tp&clsr38i'、master_port=3306、master_auto_position=1 に変更します。

スレーブを起動します。

スレーブステータスを表示します。

6. サーバーAのMySQLでマスタースレーブ構成を実行し、Bをマスター、Aをスレーブにします。

マスターを、master_host='IP'、master_user='A'、master_password='?Tp&clsr38i'、master_port=3306、master_auto_position=1 に変更します。

スレーブを起動します。

スレーブステータスを表示します。

次に、テストを行い、サーバー A の MySQL に新しいデータベースと対応するデータ テーブルを作成します。サーバー B の MySQL は同期され、データベースとデータ テーブルの一貫性が確保されます。

7. Nginxの設定

Nginx は、マイクロサービス アプリケーションが同じ URL に接続するように、MySQL クラスターのアクセス URL を構成します。
Nginx での MySQL 構成は次のとおりです。

ストリーム {
  アップストリームmysql_proxy{
    ハッシュ $remote_addr は一貫しています。
    サーバーA サーバー IP:3306 weight=1 max_fails=3 fail_timeout=10s;
	  サーバーB サーバーIP:3306 weight=1 max_fails=3 fail_timeout=10s;
  }
  サーバー{
    listen 3306; # データベースサーバーのリスニングポート proxy_connect_timeout 10s;
    proxy_timeout 300秒; 
    プロキシパスmysql_proxy;
  }
}

特記事項:

実稼働環境では、MySQL ポートを 3306 または 3389 に設定することはお勧めしません。

上記は、MySQL 5.7 クラスタを構成する手順の詳細です。MySQL クラスタ構成の詳細については、123WORDPRESS.COM の他の関連記事に注意してください。

以下もご興味があるかもしれません:
  • MySQL PXC クラスターの構築方法
  • MySQL 高可用性クラスタの展開とフェイルオーバーの実装
  • MySQLクラスタのDockerデプロイメントの実装
  • クラスタrpmを使用してMySQLをインストールするための詳細な手順
  • MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装
  • Docker を使用して MySQL 5.7 および 8.0 マスター スレーブ クラスターをデプロイする方法
  • MySQLのクラスタモードでのgalera-clusterのデプロイメントの詳細説明
  • Docker で MySQL クラスターを構築する方法の例
  • MySQL Cluster 基本導入チュートリアル
  • MySQLの高可用性と高パフォーマンスのクラスタを構築する方法

<<:  XHTML+CSS Web ページ作成における美しいスタイルシートの適用

>>:  CSS で高さが不明な垂直中央揃えを実装する

推薦する

Vue ドラッグ アンド ドロップのシンプルな実装

この記事では、主に次のような Vue ドラッグ アンド ドロップの簡単な実装を紹介します。レンダリン...

デジタルテーブル特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたデジタル時計エフェクトを紹介します。エフェクトは次のとお...

情報製品の読書リストのインタラクティブなデザインに関する考えと経験の共有

リストは、テーブルをコンテナーとして使用するテキストまたはグラフの形式として定義されます。商品の種類...

Linux で実行中のすべてのプロセスを表示する方法

ps コマンドを使用できます。プロセスの PID など、現在実行中のプロセスに関する関連情報を表示で...

製品の拡大鏡効果を実現する JavaScript

この記事では、参考までに、製品拡大鏡を実装するためのJavaScriptの具体的なコードを紹介します...

黒、白、グレーの控えめでエレガントなウェブデザインを鑑賞

クラシックな色の組み合わせの中でも、黒、白、グレーの時代を超えた魅力を否定できる人はおそらくいないで...

MySQL 8.0 のインストール中に発生した 3 つの小さなエラーの概要

序文これまで当社ではMySQLの5.7シリーズを使用していましたが、バージョン8.0のリリースに合わ...

Vue は検証コードのカウントダウンボタンを実装します

この記事では、検証コードカウントダウンボタンを実装するためのVueの具体的なコードを例として紹介しま...

MAC で MySQL の初期パスワードを変更する方法

問題の説明: Macを購入し、初めてMySQLをインストールしました。初期パスワードが分かりません。...

DockerコンテナでのMySQLデータのインポート/エクスポートの詳細な説明

序文MySQL データのインポートとエクスポートは mysqldump コマンドで解決できることは誰...

MySQL における ${param} と #{param} の違い

${param}によって渡されるパラメータは、テーブル名やフィールド名を渡すなど、SQL文の一部と...

必見の JavaScript 面接質問 10 選のまとめ (おすすめ)

1.これは1. 誰が誰に電話をかけますか?例: 関数foo(){ console.log(&quo...

優れたユーザー インターフェース デザインのための 37 のヒント (画像付き)

1. 複数列レイアウトではなく、単一列レイアウトを使用する1 列のレイアウトにより、全体的な状況をよ...

vuexサードパーティパッケージを使用してデータの永続性を実装する方法

目的: vuex で管理されている状態データを同時にローカルに保存できるようにします。独自のストレー...

MySQL はどのようにしてデータの整合性を確保するのでしょうか?

オンライン ビジネスにとってデータの一貫性と整合性が重要であることは明らかです。データが失われないよ...