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“.