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 カプセル化された虫眼鏡コンポーネントのサンプルコード

推薦する

WeChatアプレットキャンバスが署名機能を実装

WeChatアプレットプロジェクトでは、開発モジュールに手書き署名機能が含まれ、WeChatアプレッ...

インデックスとテーブルリターンをカバーするMySQLの使い方

インデックスの2つの主要なカテゴリ使用されるストレージエンジン: MySQL 5.7 InnoDBク...

Ubuntu で G++ を使用して CPP ファイルをコンパイルする

g++ を使用して初めて cpp ファイルをコンパイルしたとき、未定義の参照エラーが報告されました。...

JavaScript で H5 ゴールド コイン関数を実装する (サンプル コード)

今日は春節の金貨の赤い封筒のアクティビティを作りました。なかなか良い出来だと思います。皆さんと共有し...

jQueryチェーン呼び出しの詳細な説明

目次チェーン呼び出し小さなケースチェーン呼び出しjQuery オブジェクトが任意のメソッド (ノード...

TypeScript の Enum が問題となる理由

目次どうしたの?いつ使うか列挙の数を制御するビット値コントロールインデックス非数値列挙結論はType...

LDAP ユーザー認証を使用するように Linux を構成する方法

私は CentOS に実装された LDAP ユーザー管理を使用しています。これはインターネット上のほ...

Mysql: 定義者として指定されたユーザー ('xxx@'%') が存在しません 解決策

本日のプロジェクト最適化中に、MySQL に問題が発生しました: 定義者として指定されたユーザー (...

HTML CSS3は画像表示効果を引き伸ばさない

1. transform 属性を使用して、画像を拡大せずに表示します (パスの問題は必要に応じて修正...

mysql5.7.17 zip の解凍とインストールの詳細な手順

1. ダウンロードアドレスhttps://dev.mysql.com/downloads/mysql...

MYSQL トランザクション チュートリアル Yii2.0 マーチャント引き出し機能

序文私はプログラマーとしてスタートした PHP プログラマーです。これまで、トレーニング コースで勉...

HTML マーキータグの使用例

このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルのみをサポートしています。そのため、...

Linux カーネルの copy_{to, from}_user() に関する考察

目次1. copy_{to,from}_user() とは何か1. copy_{to,from}_u...

1 つの記事で Vuex を理解する

目次概要Vuex の 4 つの主要オブジェクト状態の使用突然変異の使用ゲッターの使用アクションの使用...

セマンティックHTML構造を理解する方法

HTML と CSS は誰もが知っていると思います。HTML の構造と CSS の表現の分離も知って...