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 で高さが不明な垂直中央揃えを実装する

推薦する

Ubuntu 20.04 に Python 3 仮想環境をインストールする詳細なチュートリアル

以下はすべて仮想マシン上で実行されます1. pip3をインストールするsudo apt で pyth...

YUM を使用して Linux (CentOS 7) に MySQL 5.7.18 をインストールする方法の詳細なチュートリアル

このプロジェクトでは MySQL を使用する必要があります。これまで Windows では常に確実に...

JavaScript を使用してカルーセル効果を実装する

この記事では、カルーセルマップの特殊効果を実現するためのJavaScriptの具体的なコードを参考ま...

Momentsで写真を整理するためのCSSコード

まず、Moments を開いて、写真の数が異なるいくつかのレイアウトを確認するか、以下の例を参照して...

Linuxシステムにおけるプロセス管理の詳細な説明

目次1. プロセスとスレッドの概念2. プロセス管理とは何ですか? 3. プロセス管理の役割4. L...

MySQL パーティション テーブルの基本入門チュートリアル

序文最近のプロジェクトでは、大量のデータを保存する必要があり、このデータには有効期限があります。クエ...

Element-ui アップロードファイルのアップロード制限の解決策

質問アップロードするファイルのタイプを accept に追加することは、「表面的な」役割しか果たしま...

Dockerfile における VOLUME と docker -v の違い

Dockerfile でのボリュームのマウントと docker -v コマンドによるマウントには明ら...

openlayers6 マップオーバーレイの一般的な 3 つの用途 (ポップアップウィンドウマーカーテキスト)

目次1. 前に書く2. ポップアップウィンドウを実装するためのオーバーレイ2.1 vueページのad...

CSS3 で背景の透明化と不透明テキストを実装するサンプルコード

最近、画像上に半透明の背景でテキストを表示する必要があるという要件に遭遇しました。その効果は次のよう...

Tomcat での jar のロードに関する異常な問題の分析と解決

現象の説明:プロジェクトでは、Springboot を使用して Web プロジェクトを開始します。起...

Linux の fsevents モジュールによって発生する npm ls エラーの解決方法の詳細な説明

Mac で開発されたプロジェクトがあり、パッケージ npm i がインストールされており、すべて正常...

画像マーキー効果を実現するネイティブJS

今日は、ネイティブ JS で実装された画像マーキー効果を紹介します。効果は次のとおりです。 実装され...