2026年6月2日
2026年6月2日
WordPressのMasterSlave レプリケーション設定
はじめに
この記事では、WordPressサイトのパフォーマンスと信頼性を向上させるためにMySQLデータベースでのマスタースレーブレプリケーション設定について解説します。マスタースレーブレプリケーションは、データベースの読み書き操作を分離することで、高可用性やスケーラビリティを確保することができます。
症状・背景
このテーマが必要になる主な場面:
- データベース読み込み遅延がある場合
- サイトへのアクセスが急激に増加した場合
- データベースの障害によりサービスが停止した場合
- レプリカを使用してバックアップを定期的に取得したい場合
手順・設定方法
ステップ1: MySQLレプリケーションの準備
# サーバーへの接続
ssh root@master_server_ip
# MySQLをrootユーザーで起動
mysql -u root -p
ステップ2: マスターサーバー設定
# レプリケーションのためのユーザを作成
CREATE USER 'replication_user'@'slave_server_ip' IDENTIFIED BY 'password';
# ユーザに適切な権限を付与
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_server_ip';
# データベースの状態をロック
FLUSH TABLES WITH READ LOCK;
# 現在の二進化されたロギングポジションとファイル名を取得
SHOW MASTER STATUS;
ステップ3: スレーブサーバー設定
# サーバーへの接続
ssh root@slave_server_ip
# MySQLをrootユーザーで起動
mysql -u root -p
# マスターサーバーからデータベースのバックアップを取得
mysqldump --all-databases > full_backup.sql
# スレーブサーバーにバックアップファイルをインポート
mysql < full_backup.sql
# MySQL設定ファイル(my.cnf)の調整
# ロギングエンジンとバイナリログファイル名を指定
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
ステップ4: マスターデータベースの状態をスレーブに設定
# MySQLをrootユーザーで起動
mysql -u root -p
# マスターサーバーから取得した情報を指定
CHANGE MASTER TO
MASTER_HOST='master_server_ip',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=0;
# スレーブを開始
START SLAVE;
注意事項
- データ同期の確認: データベースが正常に同期していることを定期的にチェックする。
- セキュリティ強化: レプリケーションユーザの権限は最小限に抑え、必要最低限のみを付与する。
- パフォーマンス監視: スレーブサーバーのパフォーマンスがマスターサーバーと比較して低下していないか確認する。
まとめ
1. マスタースレーブレプリケーション: データベースの読み書き操作を分離し、高可用性やスケーラビリティを確保。
2. ユーザ作成と権限設定: レプリケーション専用ユーザーを作成し、適切な権限を付与。
3. データ同期確認: データベースの同期状況を定期的にチェックする。
4. セキュリティ強化: 必要最低限の権限しか付与しない。
5. パフォーマンス監視: スレーブサーバーのパフォーマンス低下に注意。
関連記事: