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 オプション 無効 選択 選択 無効 オプションの例

推薦する

RabbitMQ の Docker インストールと設定手順

目次単一マシンの展開オンラインプルミラーを見るRabbitMQを作成して実行するMQコンテナを正常に...

MySQL の制限使用法とページングクエリステートメントのパフォーマンス分析の詳細な説明

使用制限クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要が...

JavaScript 組み込みの日付と時刻の書式設定のサンプル コード

1. 基礎知識(日付オブジェクトのメソッド) 😜 getFullYear() は年を表す4桁の数字を...

Vue3.0はチェックボックスコンポーネントのカプセル化を実装します

この記事では、チェックボックスコンポーネントのカプセル化を実装するためのvue3.0の具体的なコード...

n 個のコンテナ要素による無限スクロールの実装コード

シナリオ最大 10000 要素のリストを正しくレンダリングする方法。無限ドロップダウン読み込みテクノ...

nofollowタグの使用と分析に関する簡単な説明

nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...

JavaScript ファイルの読み込みとブロックの問題: パフォーマンス最適化のケーススタディ

まず質問させてください。HTML ページを作成するときに、外部から JS ファイルをインポートする場...

Bootstrap Webページレイアウトグリッドの実装

目次1. Bootstrapグリッドシステムの仕組み1.1 12グリッドシステム1.2 Bootst...

MySql はコミットする必要がありますか?

MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...

JavaScriptはブラウザがIEかどうかを判定します

フロントエンド開発者としては、IEの落とし穴は避けて通れません。他のブラウザはいいのにIEは壊れてい...

Vue は PDF.js を統合して PDF プレビューを実装し、透かしを追加する手順を実行します。

目次成果を達成する利用可能なプラグインの紹介ニーズに応じてプラグインを選択するプラグインのインストー...

CSSスクロールバーのスタイルをカスタマイズする方法の詳細な説明

この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザ...

Centos7 での MySQL のインストールに関するチュートリアル

最近、自宅サーバーにクラウドディスクを導入する予定なので、一連の環境構築作業を始めました。MySQL...

jQueryアニメーションを理解するのに役立つ記事

目次1. 要素の表示と非表示を制御する show() hide() 2. 要素の透明度を制御する f...

Reactにおけるコンテキスト適用シナリオの分析

コンテキストの定義と目的コンテキストは、コンポーネント ツリーにプロパティを明示的に渡すことなく、コ...