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

推薦する

Nginx に React プロジェクトをデプロイする方法の例

テストプロジェクト: react-demo react-demo プロジェクトをサーバーにクローンし...

Linux で誤って削除したメッセージ ファイルを復元する方法

プロセスで使用されていて、誤って削除されたファイルがある場合、それらを回復することができます。プロセ...

JavaScriptのアロー関数の特徴と通常の関数との違い

目次1. 矢印関数の使用1. 通常関数から矢印関数へ2. 中括弧を省略してリターンする3. 括弧を省...

vue+springbootでログイン認証コードを実現

この記事では、ログイン認証コードを実装するためのvue+springbootの具体的なコードを例とし...

DockerがElasticsearch7.xを起動してエラーを報告する問題を解決する

Docker実行コマンドの使用docker run -d -p 9200:9200 -p 9300:...

Vue3.0 における Ref と Reactive の違いの詳細な分析

目次参照と反応参照反応的RefとReactiveの違いshallowRef と shallowRea...

MySQL テーブル名の大文字と小文字の選択

目次1. 大文字と小文字の区別を決定するパラメータ2. パラメータ変更に関する注意事項要約: 1. ...

MySQLの左結合と内部結合について簡単に説明します

序文最近、X 省のコールド チェーン トレーサビリティ システムの開発で忙しくしています。毎日午後 ...

PIP で docker-compose をインストールする際のタイムアウト問題の解決方法

1: インストールコマンドpip install docker-compose例外情報socket....

Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。

序文Dockerを使ってHadoopクラスタを起動するたびに、ネットワークカードの再バインド、IPの...

MySQL ストレージ エンジンの基礎

前回の記事では、MySQL トランザクションについて説明しました。これで、MySQL トランザクショ...

MySQL はカスタムシーケンスを使用して row_number 関数を実装します (詳細な手順)

いくつかの記事を読んだ後、ようやく MySQL で row_number() ソートを実装する方法が...

シェルスクリプトによるDockerコンテナの起動順序の制御の詳細な説明

1. 遭遇した問題分散プロジェクトの展開プロセスでは、サーバーの再起動後にアプリケーション(データベ...

CocosCreator ソースコードの解釈: エンジンの起動とメインループ

目次序文準備行く!文章プロセスを開始するメインループまとめ要約する序文準備皆さんは、こんなことを考え...

div要素に丸い境界線を追加する方法

以下のように表示されます。 CSSコードコンテンツをクリップボードにコピー分割{境界線: 2px 固...