Master-Master Replication mit MySQL 5 auf Fedora 8

Version 1.0
Author: Oliver Meyer <o [dot] meyer [at] projektfarm [dot] de>

Diese Anleitung veranschaulicht, wie man eine Master-Master Replication mit MySQL 5 auf Fedora 8 einrichtet. Das daraus resultierende System liefert einen stabilen MySQL Server mit Ausfallsicherung.

Diese Anleitung ist ein praktischer Leitfaden ohne jegliche Garantie – theoretisches Hintergrundwissen wird nicht abgedeckt. Es gibt viele Möglichkeiten ein solches System einzurichten – dies ist der Weg, den ich gewählt habe.

1 Vorbereitung

Für diese Anleitung richte ich zwei Fedora 8 Systeme (minimale Installation ohne gui etc.) mit folgender Konfiguration ein.

1.1 System 1

Hostname: server1.example.com
IP: 192.168.0.100

1.2 System 2

Hostname: server2.example.com
IP: 192.168.0.200

2 MySQL

2.1 Benötigte Pakete auf beiden Systemen

Falls Du MySQL auf beiden Systemen noch nicht installiert hast, kannst Du es nun installieren (Client & Server) via:

yum -y install mysql mysql-server

2.2 MySQL Server – Erster Start auf beiden Systemen

Starte den MySQL Server.

/etc/init.d/mysqld start

2.3 MySQL Root Passwort

2.3.1 Beide Systeme

Richte für den MySQL Rootbenutzer auf localhost ein Passwort ein.

mysqladmin -u root password %sql_root_password%

2.3.2 System 1

Richte ein Passwort für den MySQL Rootbenutzer auf server1.example.com ein.

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

2.3.3 System 2

Richte ein Passwort für den MySQL Rootbenutzer auf server2.example.com ein.

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

2.4 MySQL Replication Benutzer

2.4.1 System 1

Erstelle den Replication Benutzer, den System 2 verwenden wird, um auf die MySQL Datenbank auf System 1 zugreifen zu können.

mysql -u root -p

GRANT REPLICATION SLAVE ON *.* TO ’slave2_user’@’%‘ IDENTIFIED BY ‚%mysql_slaveuser_password%‘;
FLUSH PRIVILEGES;
quit;

2.4.2 System 2

Erstelle den Replication Benutzer, den System 1 verwenden wird, um auf die MySQL Datenbank auf System 2 zugreifen zu können.

mysql -u root -p

GRANT REPLICATION SLAVE ON *.* TO ’slave1_user’@’%‘ IDENTIFIED BY ‚%mysql_slaveuser_password%‘;
FLUSH PRIVILEGES;
quit;

2.5 Datenbank auf System 2

Ich nehme an, dass die Datenbank exampledb auf System 1 bereits vorhanden ist und Tabellen mit Einträgen enthält. Also müssen wir eine leere Datenbank mit der gleichen Bezeichnung wie für die vorhandene Datenbank auf System 1 erstellen.

mysql -u root -p

CREATE DATABASE exampledb;
quit;

3 Replication

3.1 Firewall Konfiguration auf beiden Systemen

Die Versionen von system-config-firewall-tui vor 1.0.12-4.x wiesen im Zusammenhang mit individuellen Regeln (sie wurden nicht angewendet) einen Fehler auf – überprüfe also welche Version auf Deinem System installiert ist.

yum list installed | grep firewall

Falls die installierte Version älter ist als 1.0.12-4.x musst Du sie mit der neusten Version aktualisieren. Als diese Anleitung verfasst wurde, war die neuste Version nur in der updates-testing Paketdatenbank verfügbar.

yum –enablerepo=updates-testing update system-config-firewall-tui

Damit sich die mysql Server verbinden können, musst Du Port 3306 (tcp) auf beiden Systemen öffnen.

system-config-firewall

Klicke auf „Customize“.

Gib den MySQL-Port in den Bereich „Other Ports“ ein, wie auf dem unteren Screenshot gezeigt wird und klicke auf „OK“ um die Einstellungen zu speichern.

Klicke auf „OK“.

Das könnte Dich auch interessieren …