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

推薦する

Remレイアウトを使用して適応性を実現する

以前、モバイル適応に関する記事を書きました。非常に長く、内容が多すぎて読みづらいものでした。そこで、...

Echatsチャートの大画面適応を実装する方法

目次説明する成し遂げるプロジェクトのディレクトリ構造は次のとおりです。効果図は以下のとおりです要約す...

LinuxサーバにおけるNginxとApacheの共存の実装方法の分析

この記事では、Linux サーバー上で Nginx と Apache の共存を実装する方法について説...

ネストされた HTML ページの使用例 (フレームセットの使用)

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Dockerコンテナのデータを復元する方法

プロジェクトのテスト環境データベースのデータが失われてしまったので、記録しておきたいと思います。当時...

MySQLのさまざまなオブジェクトのサイズと長さの制限について話しましょう

目次識別子の長さ制限権限テーブルの範囲フィールドの長さ制限データベースとテーブルの数の制限テーブルサ...

MLSQLコンパイル時権限制御例の詳細な説明

序文MySQL の権限を簡単に理解すると、MySQL では自分の能力の範囲内で操作が許可され、その限...

MySQL の選択、挿入、更新バッチ操作ステートメントのコード例

プロジェクトでは、データを操作するためにバッチ操作ステートメントが必要になることがよくあります。バッ...

IDEA で Docker プロジェクトをデプロイする手順

現在、ほとんどのプロジェクトが Docker 上にデプロイされ始めていますが、デプロイのプロセスはま...

vue router-view のネストされた表示実装

目次1. ルーティング構成2. Vueページのネスト3. ネストされた関係1. ルーティング構成 定...

jQueryはシンプルなボタンの色の変更を実装します

HTML と CSS で、ボタンの色を設定したいとします。 目的の効果は得られますが、プロセスはかな...

LinuxでJenkinsのパスワードを忘れる方法

1.Jenkinsのインストール手順: https://www.jb51.net/article/1...

メタタグにおける http-equiv 属性の使用の概要

metaはhtml言語のhead領域にある補助タグです。おそらく、これらのコードは不要だと思うかもし...

ローカルのMySQLをサーバーデータベースに移行する方法

Linux の scp コマンド (Windows では scp は使用できません) と、mysql...

JavaScript は最大値と最小値のアルゴリズムを通じて AI 三目並べゲームを実装します

では、早速スクリーンショットを実行してみましょう。黒い駒はプレイヤーの位置、赤い駒はコンピュータの位...