MySQL8.0.18 複数マスターと 1 スレーブの構成

MySQL8.0.18 複数マスターと 1 スレーブの構成

1. 現実的な背景

ホストは 4 台あり、いずれもデータを自動的に収集して MySQL データベースに保存できます。また、データ処理専用の高構成のメイン サーバーがもう 1 台あります。これら 5 台のマシンは、同じネットワーク セグメント内に存在しないことがよくありますが、同じネットワーク セグメント内に存在すると、データ収集に使用される 4 台のホストがメイン サーバーからデータを自動的に収集できるようになることが期待されており、この目的のために環境が構成されています。

2. 合意

  • スレーブ、マスターサーバー
  • データ収集に使用されるホスト、master1
  • データ収集に使用されるホストであるmaster2
  • データ収集に使用されるホストであるmaster3
  • データ収集に使用されるホストmaster4

3. マスターを構成する

3.1. 起動パラメータの設定

マスターが複数ある場合は、サーバー ID が一貫していないことを確認し、残りは必要に応じて構成するだけです。

[mysqld]
# サーバー識別子。各サーバー識別子が異なることを確認してください。server-id = 1000

# マスターマシンではlog_binが有効になっている必要があります
# mysql-bin はカスタム名であり、mysql-bin.index、mysql-bin.000001 などのファイルが生成されます。log_bin=mysql-bin

# バイナリログの有効期限(単位:日)、デフォルト値は0、つまり期限切れにならない expire_logs_days = 0

# エラーログ log-error=/var/lib/mysql/mysql-error.log

# 単一の log_bin ファイルの最大値。最大値に達すると、新しく作成されたファイルのサフィックスは自動的に増加します (例: mysql-bin.000002)。
最大バイナリログサイズ = 100M

#mysql インストールパス basedir=/var/lib/mysql

#mysql データパス datadir=/var/lib/mysql

# マスターが操作を記録するデータベースはbinlog_do_db=replicationです

# マスターによって無視されたデータベース binlog_ignore_db=information_schema
binlog_ignore_db=パフォーマンススキーマ
binlog_ignore_db=システム
binlog_ignore_db = mysql

# バイナリログ保存モード binlog_format=MIXED

# BLOB タイプの最大ストレージ値 (単位: バイト、B)
# 1048576 B = 1MB
最大許容パケット数=1048576


# パスワードの複雑さの設定、プラグインが必要 # パスワードの長さは少なくとも 0 である必要があります
# 検証パスワードの長さ=8

# 大文字と小文字の最小数 # valid_password_mixed_case_count=1

# パスワードの数字の最小数# valid_password_number_count=1

# パスワード内の特殊文字の最小数 # validate_password_special_char_count=1

innodb_flush_log_at_trx_commit=0

[mysql]
デフォルトの文字セット=utf8mb4

[クライアント]
デフォルトの文字セット=utf8mb4

3.2. パラメータを有効にするためにサービスを再起動する

3.3. ルートとしてログインし、ユーザーを作成し、パスワードを割り当て、承認し、権限を更新する

ユーザーレプリケーションを作成し、パスワードを割り当てます。

'JINGhuaSHUIyue123,.' によって mysql_native_password で識別されるユーザー 'replication'@'%' を作成します。

ユーザーの作成に失敗した場合、そのユーザーがすでに存在している可能性があります。重要でない場合は、ユーザーを削除できます。

ユーザー 'replication'@'%' を削除します。

ユーザーを削除して再構築するのではなく、パスワードのみを変更する場合:

'JINGhuaSHUIyue123,.' によって mysql_native_password で識別されたユーザー 'replication'@'%' を変更します。

ユーザーにレプリケーションスレーブ権限を付与します。

*.* のレプリケーションスレーブを 'replication'@'%' に付与します。

レプリケーション スレーブの権限がすぐに有効になっていることを確認し、権限を更新します。

権限をフラッシュします。

4. スレーブサーバーを構成する

4.1. 起動パラメータの設定

[mysqld]
# サーバー識別子。各サーバー識別子が異なることを確認してください。server-id = 2000

#mysql インストールパス basedir=D:\mysql

#mysql データパス datadir=D:\mysql\data

# スレーブ複製データベース replicate_do_db=test

# スレーブによって無視されるデータベース replicate_ignore_db=information_schema
replicate_ignore_db=パフォーマンススキーマ
レプリケート_ignore_db=mysql
複製無視db=sys

# スレーブネットワークタイムアウト再接続間隔(単位:秒)
スレーブ_ネット_タイムアウト=60

[mysql]

デフォルトの文字セット=utf8

[クライアント]

デフォルトの文字セット=utf8

4.2. パラメータを有効にするためにサービスを再起動する

5. 複数のマスターと1つのスレーブを構成する

5.1. マスターステータスを確認する

root として master1 にログインし、ファイルと位置に注意してください。

マスターステータスを表示します。
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| mysql-bin.000006 | 155 | テスト | information_schema、performance_schema、sys、mysql | |
+------------------+----------+--------------+-------------------------------------------------+-------------------+

root として master1 にログインし、ファイルと位置に注意してください。

マスターステータスを表示します。
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| mysql-bin.000005 | 155 | テスト | information_schema、performance_schema、sys、mysql | |
+------------------+----------+--------------+-------------------------------------------------+-------------------+

注: MySQL を起動すると新しい log-bin が強制的に生成されるため、場所は 155 になります。

5.2. スレーブ・マスター関係の設定

他に残っている構成があるかどうかを確認します。

スレーブステータスを表示\G;

スレーブを停止し、残りの構成をクリアします。

奴隷を停止します。
すべてのスレーブをリセットします。

マスター1のファイルと位置に応じてレプリケーションチャネル「master1」を設定します。

マスターを変更する
マスターホスト = '112.124.1.100'、
master_user = 'レプリケーション'、
マスターポート = 3306、
master_password = 'レプリケーション'、
マスターログファイル = 'mysql-bin.000006'、
マスターログ位置 = 155、
マスター接続再試行 = 15、
マスター再試行回数 = 0
チャネル 'master1' の場合;

マスター2のファイルと位置に応じてレプリケーションチャネル「マスター2」を設定します。

マスターを変更する
マスターホスト = '192.168.1.139'、
master_user = 'レプリケーション'、
マスターポート = 3306、
マスターパスワード = 'JINGhuaSHUIyue123,.',
マスターログファイル = 'mysql-bin.000005'、
マスターログ位置 = 155、
マスター接続再試行 = 15、
マスター再試行回数 = 0
チャネル 'master2' の場合;
  • master_connect_retry: 接続失敗、再試行間隔(単位:秒)
  • master_retry_count: 接続失敗後の再試行回数。0 は無制限を意味します。

5.3. テーブルを準備する

開始する前に、3 台のマシンのデータベースで DDL ステートメントを使用してテーブル構造を定義し、マスター スレーブ レプリケーションの前に一貫性を確保するためにテーブル構造の一貫性を維持してください。そうしないと、エラーが発生します。

5.4. スレーブを起動し、スレーブの状態を確認する

チャネル 'master1' のスレーブを開始します。
チャネル 'master2' のスレーブを開始します。
スレーブステータスを表示\G;

成功を示すには、Slave_IO_Running と Slave_Slave_Running の両方に Yes が表示される必要があることに注意してください。それ以外の場合は、エラー プロンプトに注意してください。

これで、MySQL 8.0.18 で複数のマスターと 1 つのスレーブを構成する方法についての説明は終了です。MySQL の複数のマスターと 1 つのスレーブの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Mysqlはマスタースレーブ構成とマルチマスターマルチスレーブ構成を実装します
  • MySQL マルチマスター双方向およびカスケードレプリケーション

<<:  Windows 上の Docker にさまざまなソフトウェアをインストールする詳細なプロセス

>>:  HTML の基本的な使用法には、リンク、スタイルシート、span、div などが含まれます。

推薦する

インターフェース設計の10の一般的なルール

<br />これは私がずっと前に集めた記事です。皆さんの参考のために共有したいと思います...

MySQL外部キーの基本的な機能と使用方法の詳細な説明

この記事では、例を使用して、MySQL 外部キーの基本的な機能と使用方法を説明します。ご参考までに、...

WEB中国語フォントアプリケーションガイド

Web 上でフォントを使用することは、基本的なスキルであると同時に芸術でもあります。英語のフォントに...

jsで七夕告白連打の効果を実現、jQueryで連打技術を実現

この記事では、jsとjQueryテクノロジーを使用して告白弾幕を実現する方法を紹介します。具体的な内...

Windows で MySQL 5.6 を 5.7 にアップグレードする方法

前面に書かれたMySQL をアップグレードする方法には、インプレース アップグレードと論理アップグレ...

ネイティブJSは非常に見栄えの良いカウンターを実装します

今日は、ネイティブ JS で実装された見栄えの良いカウンターを紹介します。効果は次のとおりです。 以...

Linux で killall コマンドを使用してプロセスを終了する 8 つの例

Linux コマンドラインには、プロセスを強制終了するためのコマンドが多数用意されています。たとえば...

GTK ツリービューの原理と使用法の分析

GtkTreeView コンポーネントは、美しい通常のリストやツリーのようなリストを作成できる高度な...

2秒以内にHTMLページ内の他のページにリダイレクトする方法

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

2つのVirtualBox仮想ネットワークをブリッジするLinuxブリッジメソッドの手順

この記事は、この時期の「ピーターから奪ってポールに払う」という仕事のスタイルに対する私の不満から生ま...

一般的なMysql DDL操作の概要

図書館管理ライブラリを作成する データベースを作成します [存在しない場合] ライブラリ名;ライブラ...

MySQLの自己接続と結合の詳細な理解

1. MySQL 自己接続MySQL では、情報を照会するときに自分自身に接続 (自己接続) する必...

特定の MySQL テーブルの完全データと増分データをメッセージ キューに同期する - ソリューション

目次1. 当初の需要2. 解決策3. 運河の導入と設置運河の仕組み建築インストール4. 検証1. 当...

JavaScriptで継承を実装するいくつかの方法

目次構造継承(callで実装)プロトタイプチェーン継承(プロトタイプチェーンの助けを借りて実装)複合...

シンプルなHTMLとCSSの使い方の詳細な説明

HTML と CSS を含む JD.com のホームページの静的ページ効果を 3 日間で完成させます...