MySQL マスタースレーブレプリケーション構成プロセス

MySQL マスタースレーブレプリケーション構成プロセス

メインライブラリの構成

1. MySQLを設定する

vim /etc/my.cn
# ファイルに次の内容を追加します server-id=1 # サーバー ID が一意であることを確認します log-bin = /var/lib/mysql/mysql-bin.log
binlog-do-db = db1 
binlog-do-db = db2

このうち、db1 と db2 はマスタースレーブレプリケーションを予定しているライブラリです。複数ある場合は複数行記述するだけです。設定後、データベースを再起動します: service mysqld restart restart

2. レプリケーションユーザーを追加する

phpmyadmin を使用して、新しいユーザーを追加し、REPLICATION SLAVE 権限を付与します。または、root ユーザーとして mysql にログインし、権限を付与します。

'password' で識別される 'repl'@'%' に *.* のレプリケーション スレーブを許可します

ここで、repl はユーザー名、password はそのユーザーのパスワードです。

3. データをダンプする

新しいデータが生成されないことを保証できる場合は、データベースをロックする必要はありません。これを保証できない場合は、ダンプ データごとにデータベースをロックする必要があります。

db1 を使用します。
読み取りロック付きでテーブルをフラッシュします。

次にデータをダンプします。

mysqldump -uroot -p db1 > db1.sql

データベースが複数ある場合は、上記のプロセスを複数回繰り返します。

4. バイナリファイルの場所を確認する

MySQL に root としてログインし、マスターのステータスを確認します。

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

このコマンドは、次の形式に似た出力を生成します。

+-----------------+-----------+----------------+------------------+
| ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+-----------+----------------+------------------+
| mysql-bin.00002 | 445 | db1、db2 | |
+-----------------+-----------+----------------+------------------+
セット内の 1 行 (0.00 秒)

5. ロック解除

エクスポート数が 1 で、データベースが読み取りロックされている場合は、それを解除する必要があります。

db1 を使用します。
テーブルのロックを解除します。

この時点で、メイン データベースの構成は完了です。特に、 show master status出力のファイルと位置の値を覚えておいてください。

ライブラリからの設定

1. 新しいデータベースを作成する

まず、スレーブ ライブラリに同じ名前のデータベースを作成します。

2. スレーブデータベースを構成する

vim /etc/my.cnf
# my.cnf に次の内容を追加します。
server-id = 2 # ID が一意であることを確認してください relay-log = /var/lib/mysql/mysql-relay-bin.log
複製ワイルドドゥテーブル = db1.%
複製ワイルドドゥテーブル = db2.%

複数のデータベースを同期する場合、replicate-wild-do-table は複数行を書き込む必要があります。設定後、データベースを再起動します。

3. データのインポート

マスター サーバーからダンプされたデータをスレーブ サーバーにインポートします。

mysql -uroot -p db1 < db1.sql

4. マスタースレーブ同期を構成する

MySQL サーバーにログインし、同期されたマスター サーバー情報を設定します。

> マスターをmaster_host='xxx.xxx.xx.xx'に変更します。
> マスターユーザー='repl',
> master_password='パスワード',
> マスターログファイル='mysql-bin.00000x',
> マスターログ位置 = xxxx;

設定後、マスターとスレーブの同期を開始します: start slave 。次に、コマンドshow slave statusを使用してステータスを確認します。成功した場合、slave_io_running と slave_sql_running の両方が yes になります。

テスト

マスターデータベースへの新規レコードの追加やテーブルの追加などの操作は、ほぼリアルタイムでスレーブデータベースに反映されます。

上記は、MySQL マスタースレーブレプリケーション構成プロセスの詳細です。MySQL マスタースレーブレプリケーション構成の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL マスタースレーブレプリケーションにおける重複キーの問題を修正する方法
  • MySql マスタースレーブレプリケーションメカニズムの包括的な分析
  • MySQL マスタースレーブレプリケーションと読み取り書き込み分離の詳細な説明
  • MYSQL データベース GTID はマスタースレーブレプリケーションを実現します (超便利)
  • MySql マスタースレーブレプリケーションの実装原理と構成
  • MySQL マスタースレーブレプリケーションの原理と注意点
  • MySQL マスタースレーブレプリケーションでエラーをスキップする方法
  • MySQL マスタースレーブレプリケーションの原理からインストールと設定までを包括的に解説します。
  • MySQL マスタースレーブレプリケーションのいくつかのレプリケーション方法の概要
  • MySQL マスタースレーブレプリケーション切断の一般的な修復方法

<<:  Zabbix でフィルターを使用して監視を実装する方法

>>:  Vue3 カプセル化された虫眼鏡コンポーネントのサンプルコード

推薦する

Mysql の読み取り/書き込み分離期限切れに対する一般的な解決策

MySQLの読み書き分離の落とし穴読み取りと書き込みの分離の主な目的は、メイン データベースの負荷を...

EChartsマルチチャート連携機能の実装プロセス

表示するデータが多い場合、1 つのチャートに表示しても効果はよくありません。このとき、2 つのチャー...

js 学習ノート: class、super、extends キーワード

目次序文1. es6の前にオブジェクトを作成する2. es6 後のクラス宣言3. クラスの継承4. ...

Docker で Node.js をデプロイする方法

序文プロジェクトでは中間層としてNodeを使用し、Nodeのデプロイにはdockerを使用します。こ...

Vue は Axios リクエスト フロントエンドのクロスドメイン問題をどのように解決するのか

目次序文1. クロスドメインの問題はなぜ発生するのでしょうか? 2. 解決策クロスオリジンリソース共...

Vueスロットの使用の詳細

目次1. スロットを使用する理由1.1 スロット1.2 コンポーネントのスロット1.3 例2. この...

Linux のさまざまなロックメカニズムの使用方法と違いについて詳しく説明します

序文:この知識を理解する必要がある人は、すでにプロセス間通信とスレッド間通信の基本的な理解を持ってい...

WeChatアプレットのスクロールビューの改行問題を解決する

今日、小さなプログラムを書いていたときに、スクロールビューを使用したのですが、スクロールビュー内のテ...

Dockerのセキュリティについて Docker-TLS暗号化通信の問題

目次1. Dockerのセキュリティ問題2. Dockerアーキテクチャの欠陥とセキュリティメカニズ...

MySQLデータベースインデックスの左端一致原則

目次1. 共同インデックスの説明2. ac はインデックスを使用できますか? 3. 考える4. 最左...

Linux に MySQL 8.0.x をインストールするための完全な手順

マイグレーションMySQL 入門MySQL はもともとオープンソースのリレーショナル データベース管...

meta name="" content="の機能の詳細な説明

1. 文法: <meta name="名前" content="...

垂直グリッドと漸進的な行間隔の例

新しい質問急いで来て、急いで行ってください。 「垂直グリッドとプログレッシブ行間隔 (パート 1)」...

JS でオブジェクト プロパティを簡単にトラバースするいくつかの方法

目次1. 自己列挙可能なプロパティ2. Object.values()はプロパティ値を返します3. ...

Tomcat の一般的な例外と解決コードの例

弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...