ホームページ  >  記事  >  データベース  >  MySQL データベースのマスター/スレーブ レプリケーションを構成するにはどうすればよいですか?

MySQL データベースのマスター/スレーブ レプリケーションを構成するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-07-13 22:05:432668ブラウズ

MySQL データベースのマスター/スレーブ レプリケーションを構成するにはどうすればよいですか?

MySQL データベースのマスター/スレーブ レプリケーションは、一般的なデータ バックアップおよび高可用性ソリューションです。マスター/スレーブ レプリケーションを構成すると、ある MySQL サーバー (マスター サーバー) から別の MySQL サーバー (スレーブ サーバー) にデータを同期できるため、データベースの可用性とパフォーマンスが向上します。

以下では、MySQL データベースでマスター/スレーブ レプリケーションを構成する方法と、対応するコード例を紹介します。

  1. MySQL サーバーがインストールされ、開始されていることを確認します

まず、MySQL サーバーがシステムにインストールされ、MySQL サービスが開始されていることを確認します。

    #メイン サーバーの設定
  1. #メイン サーバーで次の設定を行います:

2.1 メイン サーバーの設定ファイルを変更します

メインサーバーを検索します。サーバーの設定ファイル (通常は /etc/mysql/my.cnf または /etc/my.cnf にあります) を見つけて、次の設定を追加します:

[mysqld]
server-id=1
log_bin=mysql-bin
binlog_do_db=your_database_name

その中で、server-id はサーバーの一意の ID を識別するために使用されます。マスター/スレーブ レプリケーションでは一意性を維持する必要があります。 log_bin にはバイナリログのファイル名を指定し、binlog_do_db には同期する必要があるデータベースの名前を指定します (カンマ区切りで複数設定可能)。

2.2 メイン サーバーの再起動

構成ファイルを保存して閉じた後、メイン サーバーを再起動して構成を有効にします。

$ sudo service mysql restart

スレーブ サーバーの構成
  1. スレーブ サーバーで以下を構成します:

3.1 スレーブ サーバーの構成ファイルを変更します

サーバーの設定ファイル (通常は /etc/mysql/my.cnf または /etc/my.cnf にあります) から見つかり、次の設定を追加します:

[mysqld]
server-id=2
relay-log=mysql-relay-bin
log_slave_updates=1
read_only=1

ここで、server-id は次の目的にも使用されます。サーバーの一意の ID を識別します。 lay-log はスレーブ サーバーのリレー ログ ファイル名を指定します。Log_slave_updates は 1 に設定され、スレーブ サーバーがバイナリ ログも記録することを示します。Read_only は 1 に設定され、スレーブ サーバーが読み取り専用であることを示します。

3.2 スレーブ サーバーの再起動

設定ファイルを保存して閉じた後、スレーブ サーバーを再起動して設定を有効にします。

$ sudo service mysql restart

マスター サーバーに接続し、レプリケーション ユーザーを作成します
  1. まず、MySQL クライアントを使用してマスター サーバーに接続し、レプリケーション用のユーザーを作成します:
$ mysql -u root -p
mysql> CREATE USER 'replication'@'%' IDENTIFIED BY 'your_password';
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replication'@'%';
mysql> FLUSH PRIVILEGES;
mysql> SHOW MASTER STATUS;

このうち、「replication」はレプリケーションユーザーのユーザー名、「your_password」はレプリケーションユーザーのパスワードですので、実際の状況に応じて修正してください。

最後に、SHOW MASTER STATUS コマンドを実行し、後でスレーブ サーバーで使用する File と Position の値を記録します。

スレーブ サーバーに接続し、マスター/スレーブ レプリケーションを構成します
  1. MySQL クライアントを使用してスレーブ サーバーに接続し、マスター/スレーブ レプリケーションを構成します:
$ mysql -u root -p
mysql> CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replication', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='master_log_file', MASTER_LOG_POS=master_log_pos;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS G;

ここで、「master_host」はマスターサーバーのIPアドレスまたはホスト名、「replication」はレプリケーションユーザーのユーザー名、「your_password」はレプリケーションユーザーのパスワード、「master_log_file」と「master_log_pos」ははファイルと位置の値です。

最後に、SHOW SLAVE STATUS G コマンドを実行し、Slave_IO_Running と Slave_SQL_Running の値が「Yes」であるかどうかを確認して、マスター/スレーブ レプリケーションが正常に構成されていることを確認します。

設定が完了すると、マスターサーバー上のデータがスレーブサーバーに同期され、マスター/スレーブレプリケーションが実現します。

概要

この記事では、MySQL データベースでマスター/スレーブ レプリケーションを構成する方法を紹介し、対応するコード例を示します。マスター/スレーブ レプリケーションにより、データのバックアップと高可用性が実現され、データベースの可用性とパフォーマンスが向上します。構成プロセスは比較的単純ですが、実際のアプリケーションでは、マスター/スレーブ レプリケーションの安定性と信頼性を確保するために、構成の一貫性や障害処理などの問題に注意を払う必要があります。

以上がMySQL データベースのマスター/スレーブ レプリケーションを構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。