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 で 1 つのテーブルのフィールドを使用して別のテーブルのフィールドを更新する方法

1. 1列を変更する 学生の更新、都市c s.city_name = c.name を設定します こ...

MySQLの文字タイプは大文字と小文字を区別します

デフォルトでは、MySQLの文字タイプは大文字と小文字を区別しません。つまり、name='A...

一般的なMySQLストレージエンジンの長所と短所

目次すべてのストレージエンジンを表示InnoDB ストレージ エンジンMyISAM ストレージエンジ...

Vue プロジェクトは左スワイプ削除機能を実装します (完全なコード)

成果を達成するコードは次のとおりですhtml <テンプレート> <div> ...

VMware Workstation 12 Pro Linux インストール チュートリアル

この記事は、VMware Workstation 12 ProのインストールLinuxチュートリアル...

JS と Nodejs におけるイベント駆動型開発についての簡単な説明

目次イベント駆動型とパブリッシュ・サブスクライブ型ブラウザの JavaScript ではイベント駆動...

ボタンをEnterキーに関連付けるjsコード

コードをコピーコードは次のとおりです。 <html> <ヘッド> <ス...

JSが5つ星の賞賛を獲得

この記事では、5つ星の評価を獲得するためのJSの具体的なコードを参考までに共有します。具体的な内容は...

モバイル開発における 1px ラインの理解と解決策

1pxの線が太くなる理由モバイルプロジェクトに取り組むとき、設計図に従って要素ノードのサイズとスタイ...

Vueフィルターの詳細な説明

<本文> <div id="ルート"> <h2&...

Vueのシンプルストアの詳しい説明

Vue におけるストアの最も単純な応用はグローバル ストレージです。ここでは、相互にジャンプするため...

MySQL の CPU 負荷が高い問題のトラブルシューティング

MySQL による CPU 負荷の上昇今日の午後、MySQL によってサーバーの負荷が高くなる問題を...

CSSは高さと幅を固定した要素の比例表示効果を実現します

padding-top パーセンテージを使用すると、固定幅と比例した高さの表示を実現できます。現在の...

MySQL 5.7.20 共通ダウンロード、インストール、設定方法と簡単な操作スキル(解凍版無料インストール)

早朝に MySQL 5.7.19 のインストールを終えたばかりですが、午前中に MySQL が最新バ...