ホームページ >データベース >mysql チュートリアル >MySql データ分散: マスター/スレーブ レプリケーション メカニズムを実装する方法
MySql は一般的なリレーショナル データベース管理システムであり、データのバックアップ、負荷分散、高可用性を実現するためにデータ レプリケーションが広く使用されています。 MySql では、マスター/スレーブ レプリケーション メカニズムを使用してデータ分散を実現し、複数のシステムが同じデータにアクセスできるようにすることができます。この記事では、MySql でマスター/スレーブ レプリケーション メカニズムを実装する方法を紹介します。
1. マスター/スレーブ レプリケーション メカニズムの基本概念
マスター/スレーブ レプリケーション メカニズムは、MySql データベースの重要な機能であり、データの分散とバックアップの実現に役立ちます。メイン サーバー上のデータを 1 つ以上のスレーブ サーバーに同期的に複製して、データ分散を実現します。 MySql では、マスター サーバーがすべてのデータ更新操作の処理を担当し、スレーブ サーバーはマスター サーバーのデータをコピーすることでデータ アクセスを実現します。
MySql のマスター/スレーブ レプリケーション メカニズムでは、マスター サーバーは自身のデータ変更記録をバイナリ ログ ファイル (バイナリ ログ) に書き込み、スレーブ サーバーはバイナリを読み取ることでマスター サーバーの情報を取得します。ログファイル、データ更新操作。このようにして、スレーブ サーバーはマスター サーバー上のデータをリアルタイムで同期できるため、複数のシステムが同時にデータにアクセスすることがより簡単かつ効率的になります。
2. マスター/スレーブ レプリケーション メカニズムの設定方法
マスター/スレーブ レプリケーション メカニズムを設定する前に、マスターサーバーとスレーブサーバーの MySql データベースがインストールされており、バージョンは同じです。さらに、マスター サーバーとスレーブ サーバーが相互にアクセスでき、マスター サーバーでバイナリ ログ機能が有効になっていることを確認する必要があります。
ステップ 1: サーバーからのレプリケーション用にメイン サーバー上にユーザーを作成し、そのユーザーにメイン サーバー上のすべてのデータベースへのアクセスを許可します。たとえば、replicator という名前のユーザーを作成し、そのユーザーにすべてのデータベースへのアクセス権を与えることができます。
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'replicator'@'%' WITH GRANT OPTION;
ステップ 2: メインサーバーのバイナリログ機能を有効にします。マスター サーバーの my.cnf 構成ファイルに次のパラメータを追加します:
[mysqld] log_bin=mysql-bin server-id=1
server-id パラメータは、マスター サーバーの一意の識別子を表します。各マスター サーバーには異なる識別子が必要です。ここではこれを 1 に設定し、バイナリ ログ ファイルのプレフィックスを mysql-bin に設定します。
ステップ 3: メインサーバーを再起動して、構成ファイルの変更を有効にします。
ステップ 1: マスター サーバーにアクセスするためのユーザーをスレーブ サーバー上に作成し、レプリケートする必要があるすべてのデータベースへのアクセスをそのユーザーに許可します。 。たとえば、backup という名前のユーザーを作成し、そのユーザーにすべてのデータベースへのアクセス権を与えることができます。
CREATE USER 'backup'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'backup'@'%' WITH GRANT OPTION;
ステップ 2: スレーブ サーバーの my.cnf 構成ファイルに次のパラメータを追加します。
[mysqld] server-id=2 relay-log=mysql-relay log_slave_updates=1 read_only=1
マスター サーバーとは異なり、スレーブ サーバーはバイナリ ログ機能を有効にする必要はありません。 。 server-id パラメータの値はメイン サーバとは異なる必要があります。ここでは 2 に設定します。 lay-log パラメータは、サーバーから受信したデータ変更レコードの保存場所を指定します。ここでは、mysql-relay という名前を付けます。 log_slave_updates パラメータは、スレーブ サーバーが生成したデータ変更レコードを独自のバイナリ ログ ファイルに書き込む必要があることを示します。 read_only パラメータは、スレーブ サーバーが読み取り操作のみに使用でき、データベースへの書き込み操作はできないことを示します。
ステップ 3: スレーブ サーバーを再起動して、構成ファイルの変更を有効にします。
ステップ 1: スレーブ サーバーで次のコマンドを実行して、マスター サーバーとの接続を確立します。
CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='replicator', MASTER_PASSWORD='password', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
このうち、MASTER_HOST パラメータはマスター サーバーの IP アドレス、MASTER_USER および MASTER_PASSWORD パラメータはサーバーからのレプリケーションのためにマスター サーバー上に作成されたユーザーのユーザー名とパスワードです。 MASTER_PORT パラメータはメイン サーバーのポート番号を示します。ここでは 3306 に設定します。 MASTER_LOG_FILE および MASTER_LOG_POS パラメータは、サーバーからのデータのコピーを開始して同期を維持するバイナリ ログ ファイルの位置を指定します。ここでは、最初のバイナリ ログ ファイル (mysql-bin.000001) データの 107 バイト目からコピーを開始すると仮定します。
ステップ 2: スレーブ サーバーのレプリケーション機能を開始します。
START SLAVE;
このコマンドにより、スレーブ サーバーはマスター サーバーからのデータのコピーを開始します。レプリケーションのステータスは、「SHOW SLAVE STATUSG」コマンドで確認できます。
レプリケーションが適切に機能しているかどうかをテストするには、マスター サーバーにデータを挿入し、データがマスター サーバーに正常にレプリケートされたかどうかを確認します。スレーブサーバー。
メインサーバーで次のコマンドを実行して、データテーブルにレコードを挿入します。
INSERT INTO test_table (name, age) VALUES ('Tom', 25);
スレーブサーバで以下のコマンドを実行し、test_tableテーブルのデータが同期されているかを確認します。
SELECT * FROM test_table;
挿入されたデータがスレーブ サーバーで確認できる場合は、マスター/スレーブ レプリケーション メカニズムが正常に構成され、開始されたことを意味します。
3. 概要
MySql のマスター/スレーブ レプリケーション メカニズムは、データの分散と同期を実現するための重要な手段であり、実際のプロジェクトで広く使用されています。この記事では、マスター サーバーとスレーブ サーバーの構成、マスター サーバーとスレーブ サーバー間のレプリケーション チャネルの確立など、MySql でマスター/スレーブ レプリケーション メカニズムを構成する方法を紹介します。以上の手順でMySqlにマスター・スレーブレプリケーション機能を簡単に実装することができます。
以上がMySql データ分散: マスター/スレーブ レプリケーション メカニズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。