Windows で MySQL マスター スレーブ レプリケーションを構成する方法

Windows で MySQL マスター スレーブ レプリケーションを構成する方法

MySQL マスター/スレーブ レプリケーションを使用すると、1 つのデータベース (マスター データベース) のデータを 1 つ以上のデータベース (スレーブ データベース) に複製できます。
マスター データベースは通常、リアルタイムのビジネス データの書き込みおよび更新操作に使用され、スレーブ データベースは主に読み取りに使用されます。

マスタースレーブレプリケーションプロセス:

1. マスター サーバーでの変更は、独自の I/O トレッド (I/O スレッド) を通じてバイナリ ログに保存されます。
2. スレーブ サーバーでも I/O スレッドが開始されます。設定されたユーザー名とパスワードを使用してマスター サーバーに接続し、バイナリ ログの読み取りを要求し、読み取ったバイナリ ログをローカルのリアル ログに書き込みます。
3. サーバー上で SQL スレッドを開始し、定期的に Realy ログ (このファイルもバイナリです) を確認します。更新が見つかった場合は、更新されたコンテンツをローカル データベースですぐに実行します。

環境は以下のとおりです。
プライマリデータベース: MySQL バージョン 5.7、IP は 192.168.1.11
スレーブ データベース: MySQL バージョン 5.7、IP は 192.168.1.12

1. マスターデータベースの構成

1. testdb という名前の新しいテスト データベースを作成します。

2. my.iniを開いて設定を追加する

# マスタースレーブレプリケーション server-id=1 # server-id を設定
log-bin=mysql-bin #バイナリファイルを開く #データベースを同期し、他のデータベースは同期しない (以下のbinlog-ignore-dbのいずれかを選択)
binlog_do_db = テストdb 
#データベースを同期せず、その他すべてを同期します #binlog-ignore-db = information_schema 
#binlog-ignore-db = MySQL

3. MySQLサービスを再起動する

4. 同期用のユーザーアカウントを作成する (1) 管理者としてcmdウィンドウを開き、mysql -uroot -pを実行し、パスワードを入力(空白の場合はEnterキーを押します)してログインします。
(2)次の3つのコマンドを順番に実行して、ユーザー(ユーザー名MySlave、パスワード123456)を作成し、権限を更新します。

'123456' によって識別される 'MySlave'@'192.168.1.12' ユーザーを作成します。
*.* のレプリケーションスレーブを 'MySlave'@'192.168.1.12' に付与します。
権限のフラッシュ;

5. マスターのステータスを確認し、バイナリファイル名と場所を記録します。

マスターステータスを表示します。

バイナリファイルはmysql-bin.000005で、位置は154です。

2. データベースから設定する

1. testdb という名前の新しいテスト データベースを作成します。

2. 同期アカウントがログインできるかどうかを確認します。Navicat for MySQL を開き、新しいリンクを作成し、IP 192.168.1.11、ユーザー名 MySlave、パスワード 123456 を入力して、「接続テスト」をクリックし、接続できるかどうかを確認します。

3. my.iniを開いて設定を追加する

server-id=2 #サーバーIDを設定
log-bin=mysql-bin #バイナリファイルを開く

4. MySQLサービスを再起動する

5. cmdコマンドラインを使用してMySQLデータベースにログインし、次のコマンドを実行して手動で同期します。

mysql > マスターを MASTER_HOST='192.168.1.11'、MASTER_PORT=3306、MASTER_USER='MySlave'、MASTER_PASSWORD='123456'、MASTER_LOG_FILE='mysql-bin.000005'、MASTER_LOG_POS=154 に変更します。

6.スレーブ同期プロセスを開始する

mysql> スレーブを起動します。

7. スレーブステータスを確認する

コマンドを実行します: show slave status\G;

Slave_IO_Running: Yes かつ Slave_SQL_Running: Yes の場合、2 つのスレッドが開始され、マスター/スレーブ レプリケーション構成が成功したことを示します。

8. マスター データベースに新しいテーブルを作成し、スレーブ データベースを更新してテーブルを表示してテストします。

述べる:

データベースのマスター/スレーブ レプリケーションを実行する前に、マスター データベースにテーブルとデータがある場合、このデータは同期されないため、手動でエクスポートしてスレーブ データベースにインポートする必要があります。

上記は、Windows での MySQL マスタースレーブレプリケーションの設定方法の詳細な内容です。MySQL マスタースレーブレプリケーションの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MYSQL データベース GTID はマスタースレーブレプリケーションを実現します (超便利)
  • MySql マスタースレーブレプリケーションの実装原理と構成
  • MySQL マスタースレーブレプリケーションでエラーをスキップする方法
  • MySQL マスタースレーブレプリケーションの遅延の原因と解決策
  • MySQL のマスタースレーブレプリケーションと読み取り書き込み分離の原理と使用法の詳細な説明
  • Docker ベースの MySQL マスタースレーブ レプリケーションを実装する方法
  • MySQL マスタースレーブレプリケーションの役割と動作原理の詳細な説明
  • MySQL はどのようにしてマスターとスレーブの同期を実現するのでしょうか?

<<:  Dockerレジストリイメージ同期の実装アイデア

>>:  jQuery の CSS スタイル属性 css() と width() の完全ガイド

推薦する

js ドラッグ アンド ドロップ テーブルでコンテンツ計算を実現する

この記事の例では、コンテンツの計算を実現するためのjsドラッグアンドドロップテーブルの具体的なコード...

MySQL のインデックスとビューの使用方法と違いの詳細な説明

序文この記事では主に、MySQL のインデックスとビューの使用方法と違いを紹介し、参考と学習のために...

シンプルなjQuery + CSSを使用してカスタムタグタイトルツールチップを作成します

導入シンプルな jQuery + CSS を使用して、ブラウザのデフォルトの動作を置き換えるカスタム...

CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

1. Apacheをインストールする # yum インストール -y httpd httpd-de...

mysql order by in の文字順序の詳細な説明 (推奨)

//MySQL ステートメント SELECT * FROM `MyTable` WHERE `id...

JavaScript での AOP プログラミングの基本実装

AOP の紹介AOP (アスペクト指向プログラミング) の主な機能は、コアビジネスロジックモジュール...

要素の水平方向の中央揃えを実現する3つの方法と、固定レイアウトとフローレイアウトの概念の理解

CSS でテキストを中央揃えにするプロパティは非常に簡単に実現できます。text-align:cen...

nginx を使用して特定のインターフェース (URL) をブロックする方法

1. はじめに場合によっては、Web プラットフォームがオンラインになった後、サービス インターフェ...

MySQLクライアントとサーバーのプロトコルの解釈

目次MySQL クライアント/サーバー プロトコルMySQL サーバーから高いパフォーマンスを得る必...

nginxプロキシsocket.ioサービスの落とし穴の詳細な説明

目次Nginx は 2 つの socket.io サーバーをプロキシします。 socket.ioの動...

phpstudy から Linux への MySQL の移行に関するチュートリアル

プロジェクトの目的元のWindows環境でphpstudyを使用して構築されたMySQL 5.5.5...

Mysql GTID Mha 設定方法

Gtid + Mha + Binlog サーバー構成: 1: テスト環境OS: CentOS 6.5...

さまざまな種類のMySQLインデックス

インデックスとは何ですか?インデックスは、データベース ストレージ エンジンが指定されたデータをすば...

Vue プロジェクトをパッケージ化して Apache サーバーにデプロイする手順

開発環境では、vue プロジェクトは、ローカルで Express サーバーを構築することをベースにし...

HTML+SassはHambergurMenu(ハンバーガーメニュー)を実装します

先日、外国人の方がHTML+CSSを使ってHamburgerMenuを実装している動画を見ました。最...