ホームページ  >  記事  >  データベース  >  MySQL を使用してデータベース間のデータ同期を行うにはどうすればよいですか?

MySQL を使用してデータベース間のデータ同期を行うにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-09-09 10:24:361503ブラウズ

MySQL を使用してデータベース間のデータ同期を行うにはどうすればよいですか?

MySQL を使用してデータベース間のデータ同期を行うにはどうすればよいですか?

現代のソフトウェア開発では、データベースの使用がいたるところで行われています。ソフトウェア プロジェクトが成長するにつれて、データの同期とバックアップがますます重要になります。 MySQL は強力なリレーショナル データベース管理システムであり、データベース間のデータ同期を実現するための信頼できる方法も提供します。この記事では、MySQL を使用してデータベース間のデータ同期を行う方法を紹介し、コード例を示して説明します。

  1. データ ソースの作成

まず、2 つのデータベースを作成する必要があります。1 つはデータ ソース データベース、もう 1 つはターゲット データベースです。 MySQL では、次の SQL ステートメントを使用してデータベースを作成できます:

CREATE DATABASE datasource;
CREATE DATABASE target;
  1. データ テーブルの作成

次に、同じものをデータ ソースに作成する必要があります。ターゲットデータベースのデータシート。次の SQL ステートメントを使用して、user という名前のデータ テーブルを作成できます。

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `age` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  1. データ ソース データベースの構成

データ ソース データベース内, データベースのすべての変更を記録するには、バイナリ ログを有効にする必要があります。これは、MySQL 構成ファイル (通常は my.cnf または my.ini) を編集することで実現できます。次のセクションを見つけてコメントを解除します。

# For MySQL 5.1.8 or later use 'SERVER' instead of 'STANDALONE'
# binary logging format - mixed recommended
# binlog_format=mixed

構成が完了したら、MySQL データベースを再起動して構成を有効にします。

  1. ターゲット データベースの構成

ターゲット データベースでは、データ ソースからデータ同期を受け取るためにマスター/スレーブ レプリケーションを設定する必要があります。これは、MySQL 構成ファイル (通常は my.cnf または my.ini) を編集することで実現できます。次のセクションを見つけてコメントを解除します。

# server-id = 1
# log_bin = /var/log/mysql/mysql-bin.log

構成が完了したら、MySQL データベースを再起動して構成を有効にします。

  1. データ ソース データベースのバイナリ ログを開始します

データ ソース データベースでは、データベースのすべての変更を記録するためにバイナリ ログを開始する必要があります。次の SQL ステートメントを使用して、バイナリ ログを開始できます。

FLUSH LOGS;
  1. ターゲット データベースのマスター/スレーブ レプリケーションを構成する

ターゲット データベースで、次の構成を行う必要があります。データ ソースのデータ同期からデータを受信するためのマスター/スレーブ レプリケーション。次の SQL ステートメントを使用して、マスター/スレーブ レプリケーションを構成できます。

CHANGE MASTER TO
  MASTER_HOST='数据源数据库IP地址',
  MASTER_USER='数据源数据库用户名',
  MASTER_PASSWORD='数据源数据库密码',
  MASTER_PORT=数据源数据库端口号,
  MASTER_LOG_FILE='数据源数据库二进制日志文件名',
  MASTER_LOG_POS=数据源数据库二进制日志位置;

このうち、データ ソース データベース IP アドレス は、データ ソース データベース データ ソースの IP アドレスです。データベース ユーザー名 はデータ ソース データベースのユーザー名、 データ ソース データベース パスワード はデータ ソース データベースのパスワード、 データ ソース データベース ポート番号 はポート番号です。データ ソース データベースのバイナリ ログ ファイル名 はデータ ソース データベースのバイナリ ログ ファイル名、 データ ソース データベースのバイナリ ログの場所 はデータ ソース データベースのバイナリ ログの場所。

    ターゲット データベースのマスター/スレーブ レプリケーションの開始
ターゲット データベースで、データ ソースからデータ同期を受信するためにマスター/スレーブ レプリケーションを開始する必要があります。次の SQL ステートメントを使用して、マスター/スレーブ レプリケーションを開始できます。

START SLAVE;

    データ同期の確認
ここで、データ同期をテストできます。データの一部をデータ ソース データベースの

user テーブルに挿入し、そのデータがターゲット データベースで同期されているかどうかを確認できます。

データ ソース データベースでは、次の SQL ステートメントを使用してデータの一部を挿入できます。

INSERT INTO datasource.user (name, age) VALUES ('张三', 25);

ターゲット データベースでは、次の SQL ステートメントを使用して

user テーブルに新しく挿入されたデータがあります:

SELECT * FROM target.user;

同期が成功すると、

张三 および age という名前のデータもあることがわかります。ターゲット データベースの 25

この時点で、MySQL を使用したデータベース間のデータ同期が完了しました。データ ソース データベースのバイナリ ログを有効にし、ターゲット データベースのマスター/スレーブ レプリケーションを構成することで、データのリアルタイム同期とバックアップを実現し、データのセキュリティと一貫性を確保できます。

以上がMySQL を使用してデータベース間のデータ同期を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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