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

推薦する

MacOS Catalina アップグレード後の VMware ブラック スクリーン問題に対する完璧な解決策の詳細な説明

MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...

Vue でよく使われる高階関数と包括的な例

1. 配列のよく使われる高階関数配列があり、その配列に対して次の操作を実行したいとします。 100 ...

Mysql の主キーと一意キーの違いのまとめ

主キーとは何ですか?主キーは、テーブル内の各タプル (行) を一意に識別するテーブル内の列です。主キ...

MySQL 5.7.10 インストール ドキュメント チュートリアル

1. 依存パッケージをインストールする yum -y インストール gcc-c++ ncurses-...

HTML フォーマットの json のサンプルコード

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!DOCTYPE htm...

jsは配列の平坦化を実装します

目次配列をフラット化する方法1.flat() の使用2. 正規表現を使用する3.reduce()+c...

CentOS7にPHP7 Redis拡張機能をインストールする方法

導入前回の記事では、Redis をインストールして設定しましたが、まだ終わりではありません。PHP ...

CentOS 8で自動更新を設定するための手順を完了する

データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...

bashの初期化メカニズムの詳細な説明

Bash 初期化ファイル対話型ログインシェル次の場合にはログイン シェルを取得できます。ローカル端末...

Linux で Tomcat を実行するいくつかの方法の説明

Linux での Tomcat の起動とシャットダウンLinux システムでは、コマンド操作を使用し...

トップに戻るボタンの例の JavaScript 実装

この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...

Vue ターンテーブル抽選の簡単な実装

この記事では、ホイール抽選を簡単に実装するためのVueの具体的なコードを参考までに共有します。具体的...

MySQL トランザクション分離レベルの表示と変更の例

トランザクション分離レベルを確認するMySQL では、'%tx_isolation%'...

ドメイン名、ポート、IPに基づいてnginx仮想ホストを構築する

nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...