MySQL 構成マスタースレーブサーバー (マスター 1 台とスレーブ複数台)

MySQL 構成マスタースレーブサーバー (マスター 1 台とスレーブ複数台)

この記事では主にMySQLマスタースレーブサーバー(マスター1台とスレーブ複数台)の構成について紹介します。興味があれば、詳細を確認してください。

現在の環境
セントロス7.6
MySQL 5.7

Centos 7.6 への MySQL 5.7 のインストールについては、https://www.jb51.net/article/99965.htm を参照してください。

アイデア

ここに画像の説明を挿入

ここに画像の説明を挿入

ホスト構成

confを変更する

vim /etc/my.cnf

[mysqld]の後に設定を追加し、保存して終了します。

サーバーID=1
ログビン=マスタービン
ログ bin インデックス = マスター bin.index

再起動

systemctl で mysqld.service を再起動します。

# ステータスを確認する systemctl status mysqld.service

テスト

mysql -u ルート -p
マスターステータスを表示します。 

ここに画像の説明を挿入

スレーブ 1 の構成

confを変更する

vim /etc/my.cnf

[mysqld]の後に設定を追加し、保存して終了します。

サーバーID=2
リレーログ=スレーブ01リレービン
リレーログインデックス=スレーブ01リレービン.インデックス

再起動

systemctl で mysqld.service を再起動します。
# ステータスを確認する systemctl status mysqld.service

スレーブ2の構成

confを変更する

vim /etc/my.cnf

[mysqld]の後に設定を追加し、保存して終了します。

サーバーID=3
リレーログ=スレーブ02リレービン
リレーログインデックス=スレーブ02リレービン.インデックス

再起動

systemctl で mysqld.service を再起動します。
# ステータスを確認する systemctl status mysqld.service

マスターとスレーブの関係を構成する

ホスト構成

ホストの MySQL コンソールにログインし、ユーザーを作成し、承認して更新します。

mysql -u ルート -p

'Mysql57*' によって識別されるユーザー 'repl'@'%' を作成します。
'Mysql57*' によって識別される 'repl'@'%' に *.* のレプリケーション スレーブを許可します。
権限をフラッシュします。

ここに画像の説明を挿入

スレーブ構成

mysql -u ルート -p

# 私のホストIPは192.168.1.8です
マスターを、master_host='192.168.1.8'、master_port=3306、master_user='repl'、master_password='Mysql57*'、master_log_file='master-bin.000001'、master_log_pos=0 に変更します。

スレーブを起動します。
#マスタースレーブ同期を停止#スレーブを停止;
# \G はスレーブ ステータスを表示するための改行を意味します \G; 

マスタースレーブステータスを確認すると、「マスターとスレーブのMySQLサーバUUIDが同じであるため、スレーブI/Oスレッドが停止します。レプリケーションが機能するには、これらのUUIDが異なっている必要があります。」というメッセージが表示されます。FAQを参照してください。

ここに画像の説明を挿入

テストデータの同期

ここで著者は視覚化ツール Navicat を使用していますが、読者は他のツールを使用することもできます。これは単なる簡単なテストです。

マスターライブラリに新しいライブラリ test-for-repl を追加し、スレーブライブラリ 01 と 02 に新しいライブラリがあるかどうかを確認します。

マスター ライブラリ test-for-repl に新しいテーブル test-create-table を追加して、スレーブ ライブラリ 01 および 02 にテーブルがあるかどうかを確認します。マスター ライブラリ test-for-repl に新しいテーブル test-create-table を追加して、スレーブ ライブラリ 01 および 02 にデータがあるかどうかを確認します。

ここに画像の説明を挿入

よくある質問

スレーブマシンはマスタースレーブ同期ステータスをチェックし、エラーを報告します。

マスターとスレーブの MySQL サーバー UUID が同じであるため、スレーブ I/O スレッドが停止します。レプリケーションが機能するには、これらの UUID が異なる必要があります。

ここに画像の説明を挿入

理由

ここで、著者は VMware ソフトウェアを使用して Centos7.6 + MySQL5.7 をインストールする仮想マシンを作成し、その仮想マシンを使用して他の 2 つの仮想マシンをスレーブ マシンとしてクローンしました。その結果、3 つの仮想マシンで MySQL を起動すると、同じ UUID が生成されます。

解決

MySQLのUUIDを見つけて、1文字を変更し、サービスを再起動してから、MySQLコンソールにログインしてマスタースレーブを有効にします。

検索 / -name 'auto.cnf'
vim /var/lib/mysql/auto.cnf
systemctl で mysqld.service を再起動します。
mysql -u ルート -p
スレーブを起動します。
# \G はスレーブ ステータスを表示するための改行を意味します \G; 

これで、MySQL マスター スレーブ サーバー (マスター 1 台とスレーブ複数台) の構成に関するこの記事は終了です。MySQL マスター スレーブ サーバーの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装
  • Mysql 1マスターと複数スレーブの導入の実装手順

<<:  CSS3 で Taobao に空白スペースを実装する方法

>>:  html オプション 無効 選択 選択 無効 オプションの例

推薦する

MySQL テーブルを返すとインデックスが無効になるケースの説明

導入MySQL InnoDB エンジンがレコードをクエリし、インデックス カバレッジを使用できない場...

MySQL 全文インデックスガイド

全文インデックスには特別なクエリ構文が必要です。全文検索はインデックスの有無にかかわらず実行できます...

Linux Centos8 CA証明書作成チュートリアル

必要なファイルをインストールする Yum インストール openssl-* -yデータベースインデッ...

MySQL は、元のデータと同じデータがある場合、更新ステートメントを再度実行しますか?

背景この記事では主に、MySQL が更新ステートメントを実行するときに、元のデータと同一の (つまり...

VScode設定のリモートデバッグLinuxプログラムの問題を解決する

VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...

Nginx リバース プロキシを使用してクロスドメイン問題を解決する方法の詳細な説明

質問前回のクロスドメイン リソース共有に関する記事では、ドメイン間で Cookie を送信する場合、...

CSSフローティングとフローティング解除について

フロートの定義要素を通常のドキュメント フローから外し、要素を左また​​は右に近づけます。親要素の端...

HTML img タグの alt 属性と title 属性の使い方の紹介

ブラウザベンダーが標準を曲げて、ルールに従わないことをすると、問題や少なくとも混乱が生じる可能性があ...

1 つの記事で React における Redux の初期の使用を理解する

Redux はデータ状態管理プラグインです。React や Vue を使用してコンポーネント化された...

WeChatアプレットを使用して天井効果を実現する方法の例

目次1. 実装2. 問題点3. より良い実装方法があるかどうか検討する要約する背景は日付のタイトルで...

MySQLの暗黙的な変換について話す

作業の過程で、暗黙的な変換が発生するケースが数多くあります。暗黙的な変換は、クエリの速度低下を引き起...

CSS で透明なグラデーション効果を実装するためのサンプルコード

Zhihu Discovery コラムのタイトル画像は、通常、以下のように表示されます。明らかに、グ...

InnoDB エンジンのパフォーマンスを最適化するための my.cnf パラメータ構成

私はインターネット上で数え切れないほどの my.cnf 構成を読みましたが、言及されている構成のほと...

入力要素 [type="file"] を使用する場合のスタイルのカスタマイズとブラウザの互換性の問題に関する議論

この2日間、Baixing.comの筆記試験問題を解いているときに、このような問題に遭遇しました。H...

jQueryはクッキーを操作する

コードをコピーコードは次のとおりです。 jQuery.cookie = 関数(名前、値、オプション)...