ホームページ >データベース >mysql チュートリアル >MySQL でデータのレプリケーションと同期を実現するにはどうすればよいですか?
MySQL は現在最も人気のあるリレーショナル データベース管理システムの 1 つであり、高可用性とデータ保護を実現するデータのレプリケーションと同期をサポートしています。この記事では、MySQL でデータのレプリケーションと同期を実装する方法を紹介し、いくつかのコード例を示します。
1. MySQL データ レプリケーションの基本原則
MySQL データ レプリケーションは、あるデータベースから別のデータベースにデータをコピーすることによって実現されます。これはマスター/スレーブ レプリケーション モデルに基づいており、1 つのデータベースがマスター サーバーとして機能し、すべての書き込み操作の受信と処理を担当し、他のデータベースがスレーブ サーバーとして機能し、マスター サーバーからのデータ更新の要求と取得を担当します。データのレプリケーションは、マスター サーバー上のバイナリ ログをスレーブ サーバーに転送することによって実行されます。
[mysqld]
server-id=1
log-bin=mysql-bin
ここで、 server -id はマスターサーバーの一意の識別子で、log-bin はバイナリログファイルの名前を指定します。
次に、MySQL サービスを再起動して、構成を有効にします。
[mysqld]
server-id=2
relay-log=mysql-relay-bin
log-slave - update=1
このうち、server-id はスレーブ サーバーの一意の識別子、relay-log はリレー ログ ファイルの名前を指定し、log-slave-updates はスレーブ サーバーがバイナリを記録するかどうかを示します。ログ。
次に、MySQL サービスを再起動して、構成を有効にします。
CREATE USER 'replication'@'% ' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON . TO 'replication'@'%';
次に、バイナリ ログ ファイルの名前と場所を取得します:
SHOW MASTER STATUS;
スレーブ サーバーで次のコマンドを実行してレプリケーション チャネルを確立します:
CHANGE MASTER TO MASTER_HOST='メイン サーバー IP', MASTER_USER='replication ', MASTER_PASSWORD='パスワード', MASTER_LOG_FILE='バイナリ ログ ファイル名', MASTER_LOG_POS=position;
次に、サーバーからレプリケーション機能を開始します:
START SLAVE;
2. 方法MySQL データ同期を実装するには
MySQL データ同期とは、複数のデータベース間でデータの一貫性を維持し、データのリアルタイム性と一貫性を確保することを指します。以下に、いくつかの一般的なデータ同期実装方法を紹介します。
(1) メイン サーバーでバイナリ ログ機能を有効にし、バイナリ ログ形式を ROW に設定します。
binlog_format=ROW
(2) セカンダリ サーバーでレプリケーションを構成し、CHANGE MASTER コマンドを使用してレプリケーション チャネルを確立し、レプリケーションを開始します。
(3) マスター サーバー上のデータが変更されたときにデータを同期するためのトリガーをスレーブ サーバー上に作成します。
DELIMITER $$
CREATE TRIGGER sync_data AFTER INSERT ON table name FOR EACH ROW
BEGIN
INSERT INTO table name VALUES (NEW.Field 1, NEW.Field 2, ...) ;
END$$
DELIMITER ;
マスター サーバー上のデータが変更されると、トリガーはスレーブ サーバー上で対応する INSERT 操作を実行し、データ同期を実現します。
具体的な手順は次のとおりです。
(1) 各データベースにテーブルを作成するときに、主キー フィールドを自動インクリメント列に設定します。
(2) 各データベースにデータを挿入するときに、主キー フィールドの値を指定する必要はありません。データベースは、そのフィールドに対して一意の主キー値を自動的に生成します。
(3) スケジュールされたタスクまたはトリガーを通じて、各データベースのデータを他のデータベースと同期します。
コード例:
CREATE TABLE テーブル名 (
id INT AUTO_INCREMENT PRIMARY KEY,
フィールド 1 VARCHAR(50),
フィールド 2 VARCHAR(50)
);
INSERT INTO テーブル名 (フィールド 1, フィールド 2) VALUES ('データ 1', 'データ 2');
コード例はまだありません。ツールの公式ドキュメントと使用例を参照してください。
概要:
この記事では、MySQL でデータのレプリケーションと同期を実現する方法と、関連するコード例を紹介します。データの複製と同期を通じて、データベースの高可用性とデータ保護を実現し、システムの安定性と信頼性を向上させることができます。同時に、実際のニーズに基づいて適切な方法とツールを選択することで、ビジネス ニーズをより適切に満たすことができます。
以上がMySQL でデータのレプリケーションと同期を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。