MySQL双方向レプリケーションの設定方法

環境

OS: Windows Server 2019
MySQLバージョン: 8.0
サーバー1: 10.20.6.90
サーバー2: 10.20.6.99

1. my.iniファイルの編集

設定ファイルは C:\ProgramData\MySQL\MySQL Server 8.0\my.ini に配置します。

サーバーA(10.20.6.90)の設定:

[mysqld]
server-id=1
log_bin= MASTER01-bin
binlog-do-db = target_database

log-slave-updates
sync_binlog = 1
auto_increment_increment=2
auto_increment_offset=1
replicate-do-db=target_database

サーバーB(10.20.6.99)の設定:

[mysqld]
server-id=2
log_bin= MASTER02-bin
binlog-do-db = target_database

log-slave-updates
sync_binlog = 1
auto_increment_increment=2
auto_increment_offset=2
replicate-do-db=target_database

設定を反映させる:

net stop mysql80
net start mysql80

2. レプリケーションユーザーの作成

サーバーA側:

コマンドプロンプトで MySQL の bin ディレクトリ(C:\Program Files\MySQL\MySQL Server 8.0\bin)に移動し、MySQLにログインします。

mysql -u root -pパスワード

ログイン後、以下のSQLを実行してレプリケーションユーザーを作成します:

mysql> CREATE USER 'syncuser'@'10.20.6.99' IDENTIFIED BY 'pass12345';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'syncuser'@'10.20.6.99';
mysql> FLUSH PRIVILEGES;

サーバーB側:

同様にMySQLにログインし、以下のSQLを実行します:

mysql> CREATE USER 'syncuser'@'10.20.6.90' IDENTIFIED BY 'pass67890';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'syncuser'@'10.20.6.90';
mysql> FLUSH PRIVILEGES;

3. バイナリログ情報の確認

サーバーAで実行:

mysql> SHOW MASTER STATUS\G;

出力される FilePosition の値を記録します。

サーバーBで実行:

mysql> SHOW MASTER STATUS\G;

同様に FilePosition の値を記録します。

4. スレーブ接続の設定

サーバーAからサーバーBへのレプリケーション設定:

mysql>
CHANGE MASTER TO
MASTER_HOST='10.20.6.99',
MASTER_USER='syncuser',
MASTER_PASSWORD='pass12345',
MASTER_LOG_FILE='MASTER02-bin.000001',
MASTER_LOG_POS=307;

サーバーBからサーバーAへのレプリケーション設定:

mysql>
CHANGE MASTER TO
MASTER_HOST='10.20.6.90',
MASTER_USER='syncuser',
MASTER_PASSWORD='pass67890',
MASTER_LOG_FILE='MASTER01-bin.000001',
MASTER_LOG_POS=321;

5. レプリケーションの起動と確認

サーバーA:

mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G;

以下の2つの項目が Yes となっていることを確認します:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

サーバーB:

同様のコマンドを実行して確認を行います。

もし No が表示される場合は、Last_Error の内容を参考に設定を修正してください。

タグ: MySQL database Replication windows-server mysql8.0

5月30日 08:27 投稿