インターネットの急速な発展に伴い、Web アプリケーションにはデータベース操作がますます統合されています。 MySQL は、広く使用されている世界的に有名なリレーショナル データベース システムです。同時実行性の高い Web アプリケーションでは、MySQL のマスター/スレーブ レプリケーションはデータベースのパフォーマンスと可用性を向上させる重要な方法です。この記事では、PHP を使用して MySQL データベースのマスター/スレーブ レプリケーションを実装する方法を紹介します。
1. MySQL マスター/スレーブ レプリケーションとは
MySQL マスター/スレーブ レプリケーションとは、2 つの MySQL サーバーのデータの一貫性を維持するために、1 つの MySQL データベース サーバーのデータを別のサーバーにコピーすることを指します。 。サーバーの 1 つはマスター サーバーと呼ばれ、リアルタイムでデータを更新する役割を果たします。もう 1 つのサーバーはスレーブ サーバーと呼ばれ、マスター サーバーからのデータを同期する役割を果たします。マスター/スレーブ レプリケーションにより、システムのスケーラビリティとフォールト トレランスが向上します。たとえば、メイン サーバーがダウンした場合、スレーブ サーバーがメイン サーバーの作業を引き継ぎ、ビジネスの通常の動作を確保できます。
2. マスター/スレーブ レプリケーションの実装原理
マスター/スレーブ レプリケーションの実装原理は次のとおりです:
3. PHP でマスター/スレーブ レプリケーションを実装する方法
メイン サーバーに必要なものmy.cnf で設定します ファイル内のバイナリ ログを有効にします。 my.cnf ファイルを開き、[mysqld] セクションに次の設定を追加します。
server-id=1 log-bin=/var/log/mysql/mysql-bin.log
このうち、server-id はメイン サーバーを識別するために使用され、log-bin はメイン サーバーのパスを指定するために使用されます。ログファイル。
スレーブ サーバーは、my.cnf 構成ファイルにマスター サーバーの接続情報を追加する必要があります。 my.cnf ファイルを開き、[inisd_client] セクションに次の設定を追加します。
server-id=2 master-host=10.0.0.1 master-user=repl_user master-password=repl_password master-port=3306
このうち、server-id はスレーブ サーバーを識別するために使用され、master-host はマスター サーバーの IP アドレスを指定します。 、master-user および master -password はマスター サーバーのユーザー名とパスワードを指定し、master-port はマスター サーバーのポート番号を指定します。
データをレプリケートするためのユーザーをメイン サーバー上に作成し、そのユーザーにバイナリ ログの読み取りを許可します。 MySQL クライアントを開き、次のコマンドを実行します。
mysql> CREATE USER 'repl_user'@'%' IDENTIFIED BY 'repl_password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
スレーブ サーバーの MySQL クライアントで次のコマンドを実行して、レプリケーション プロセスを開始します :
mysql> CHANGE MASTER TO MASTER_HOST='10.0.0.1', MASTER_USER='repl_user', MASTER_PASSWORD='repl_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; mysql> START SLAVE;
このうち、MASTER_LOG_FILE と MASTER_LOG_POS は、メイン サーバーのバイナリ ログで見つかります。
上記の手順を完了すると、スレーブ サーバーはマスター サーバーからデータをコピーし、2 つのデータベース内のデータの一貫性を保ちます。
4. 概要
MySQL マスター/スレーブ レプリケーションは、システムのパフォーマンスと可用性を向上させる重要なテクノロジです。 PHP を使用して MySQL マスター/スレーブ レプリケーションを実装するのは非常に簡単で、マスター サーバーでバイナリ ログを有効にし、スレーブ サーバーでマスター サーバー情報を構成し、レプリケーション ユーザーを作成して、レプリケーション プロセスを開始するだけです。実際の運用環境では、データベース サービスの安定性とセキュリティを確保するために、データベースの運用と保守を支援する適切な技術的手段を使用することに注意を払う必要があります。
以上がPHP で MySQL データベースのマスター/スレーブ レプリケーションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。