データベース · 1 min read · Feb 02, 2026

MySQL 5によるFedora 8でのマスターマスターレプリケーション

MySQL 5によるFedora 8でのマスターマスターレプリケーション

Version 1.0
Author: Oliver Meyer

この文書では、Fedora 8上でMySQL 5を使用してマスターマスターレプリケーションを設定する方法について説明します。バージョン5以降、MySQLはマスターマスターレプリケーションのための組み込みサポートを提供しており、自己生成されたキーに関する問題を解決します。以前のMySQLバージョンでは、ノードAとノードBが同じテーブルに自動インクリメントキーを挿入すると、すぐに競合が発生するという問題がありました。マスターマスターレプリケーションの利点は、アプリケーションを変更して書き込みアクセスをマスターのみに制限する必要がなく、マスターが故障した場合でも他のマスターが残るため、高可用性を提供しやすいことです。

このハウツーは、理論的背景をカバーせず、保証なしの実用的なガイドです。このようなシステムを設定する方法は多くありますが、これは私が選んだ方法です。

1 準備

このハウツーでは、次の構成で2つのFedora 8システム(GUIなしの最小インストール)を設定しました。

1.1 システム1

ホスト名: server1.example.com
IP: 192.168.0.100

1.2 システム2

ホスト名: server2.example.com
IP: 192.168.0.200

2 MySQL

2.1 両システムに必要なパッケージ

両システムにMySQLがインストールされていない場合は、次のコマンドでインストールできます(クライアント&サーバー):

yum -y install mysql mysql-server

2.2 両システムでのMySQLサーバーの初期起動

MySQLサーバーを起動します。

/etc/init.d/mysqld start

2.3 MySQLルートパスワード

2.3.1 両システム

localhostのMySQLルートユーザーのパスワードを設定します。

mysqladmin -u root password %sql_root_password%

2.3.2 システム1

server1.example.comのMySQLルートユーザーのパスワードを設定します。

mysqladmin -u root -h server1.example.com password %mysql_root_password%

2.3.3 システム2

server2.example.comのMySQLルートユーザーのパスワードを設定します。

mysqladmin -u root -h server2.example.com password %mysql_root_password%

2.4 MySQLレプリケーションユーザー

2.4.1 システム1

システム2がシステム1のMySQLデータベースにアクセスするために使用するレプリケーションユーザーを作成します。

mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'slave2_user'@'%' IDENTIFIED BY '%mysql_slaveuser_password%';  
FLUSH PRIVILEGES;  
quit;

2.4.2 システム2

システム1がシステム2のMySQLデータベースにアクセスするために使用するレプリケーションユーザーを作成します。

mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'slave1_user'@'%' IDENTIFIED BY '%mysql_slaveuser_password%';  
FLUSH PRIVILEGES;  
quit;

2.5 システム2のデータベース

私は、exampledbというデータベースがすでにシステム1に存在し、レコードを含むテーブルがあると仮定します。したがって、システム1に存在するデータベースと同じ名前の空のデータベースを作成する必要があります。

mysql -u root -p
CREATE DATABASE exampledb;  
quit;
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。