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() の完全ガイド

推薦する

ランキングを取得するためのMySQLソートの例コード

コードは次のようになります。 SELECT @i:=@i+1 行番号、 if(@total=t.s_...

UbuntuにProtobuf 3をインストールするための詳細なチュートリアル

いつインストールするかprotoc コマンドを使用しても Protoc が見つからない場合は、インス...

Vueは遅延読み込みによりページの応答速度を向上

目次概要遅延読み込みとは何ですか?最適化を開始するビジネスモジュールを分割する遅延読み込みルート構成...

MySQL インデックスのパフォーマンス最適化の問題に対する解決策

MySQL によって作成される最適化はインデックスを追加することですが、インデックスを追加しても目的...

Layuiはログインインターフェース検証コードを実装します

この記事の例では、ログインインターフェース検証コードを実装するためのlayuiの具体的なコードを参考...

Vue3+Vite+TS は、要素プラスビジネスコンポーネントの二次カプセル化を実装します sfasga

目次1. 構造文字列2. タプルを返す3. Dict辞書にアクセスする4. 図書館を利用する5. リ...

MySQL の where と on の違いと、いつ使用するか

以前、テーブル結合クエリを書いていたとき、whereとonの違いがわからず、SQLに小さな問題が発生...

MySQL 5.7.19 winx64 無料インストールバージョン設定チュートリアル

mysql-5.7.19-winx64インストールフリー版の設定方法、参考までに具体的な内容は以下の...

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...

Vue3 でタイマーコンポーネントをカプセル化する方法

背景一部のショッピング モールの Web ページで商品の詳細を開くと、購入数量を選択するためのカウン...

Vueユーザーが長時間操作せずにログインページからログアウトするように実装する2つの方法

目次問題の説明フロントエンド制御(方法1)アイデアコードバックエンド制御(方法2)アイデアコード要約...

プロジェクトのフロントエンドとバックエンドでの Echart チャートの使用に関する詳細な説明

目次序文1. プロジェクトアーキテクチャ2. Echart公式サイトにアクセスして自己分析を学ぶ2....

JavaScriptにおけるこれの深い理解

Jsでのこれの深い理解JavaScriptスコープはstatic scopeスコープですが、 Jsの...

CSS を使用して画像の下の空白を数ピクセル消去する方法の詳細な説明

最近、友人が私に質問をしました。ページをレイアウトすると、画像の下に 1 ~ 2 ピクセルの空白があ...

Docker-compose を使用して ELK をデプロイするためのサンプル コード

環境ホストIP 192.168.0.9 Docker バージョン 19.03.2 docker-co...