MySQL を使用してデータベース間のデータ同期を行うにはどうすればよいですか?
現代のソフトウェア開発では、データベースの使用がいたるところで行われています。ソフトウェア プロジェクトが成長するにつれて、データの同期とバックアップがますます重要になります。 MySQL は強力なリレーショナル データベース管理システムであり、データベース間のデータ同期を実現するための信頼できる方法も提供します。この記事では、MySQL を使用してデータベース間のデータ同期を行う方法を紹介し、コード例を示して説明します。
まず、2 つのデータベースを作成する必要があります。1 つはデータ ソース データベース、もう 1 つはターゲット データベースです。 MySQL では、次の SQL ステートメントを使用してデータベースを作成できます:
CREATE DATABASE datasource; CREATE DATABASE target;
次に、同じものをデータ ソースに作成する必要があります。ターゲットデータベースのデータシート。次の 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;
データ ソース データベース内, データベースのすべての変更を記録するには、バイナリ ログを有効にする必要があります。これは、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 データベースを再起動して構成を有効にします。
ターゲット データベースでは、データ ソースからデータ同期を受け取るためにマスター/スレーブ レプリケーションを設定する必要があります。これは、MySQL 構成ファイル (通常は my.cnf
または my.ini
) を編集することで実現できます。次のセクションを見つけてコメントを解除します。
# server-id = 1 # log_bin = /var/log/mysql/mysql-bin.log
構成が完了したら、MySQL データベースを再起動して構成を有効にします。
データ ソース データベースでは、データベースのすべての変更を記録するためにバイナリ ログを開始する必要があります。次の SQL ステートメントを使用して、バイナリ ログを開始できます。
FLUSH LOGS;
ターゲット データベースで、次の構成を行う必要があります。データ ソースのデータ同期からデータを受信するためのマスター/スレーブ レプリケーション。次の SQL ステートメントを使用して、マスター/スレーブ レプリケーションを構成できます。
CHANGE MASTER TO MASTER_HOST='数据源数据库IP地址', MASTER_USER='数据源数据库用户名', MASTER_PASSWORD='数据源数据库密码', MASTER_PORT=数据源数据库端口号, MASTER_LOG_FILE='数据源数据库二进制日志文件名', MASTER_LOG_POS=数据源数据库二进制日志位置;
このうち、データ ソース データベース IP アドレス
は、データ ソース データベース データ ソースの IP アドレスです。データベース ユーザー名
はデータ ソース データベースのユーザー名、 データ ソース データベース パスワード
はデータ ソース データベースのパスワード、 データ ソース データベース ポート番号
はポート番号です。データ ソース データベースのバイナリ ログ ファイル名 はデータ ソース データベースのバイナリ ログ ファイル名、
データ ソース データベースのバイナリ ログの場所 はデータ ソース データベースのバイナリ ログの場所。
START SLAVE;
user テーブルに挿入し、そのデータがターゲット データベースで同期されているかどうかを確認できます。
INSERT INTO datasource.user (name, age) VALUES ('张三', 25);ターゲット データベースでは、次の SQL ステートメントを使用して
user テーブルに新しく挿入されたデータがあります:
SELECT * FROM target.user;同期が成功すると、
张三 および age
という名前のデータもあることがわかります。ターゲット データベースの 25。
以上がMySQL を使用してデータベース間のデータ同期を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。