Menü schliessen
Created: December 24th 2011
Last updated: May 1st 2020
Categories: MySQL
Author: Marcus Fleuti

MySQL Datenbank Replikation (Master-Slave Konfiguration) konfigurieren

Tags:  Datenbank,  MySQL
Donation Section: Background
Monero Badge: QR-Code
Monero Badge: Logo Icon Donate with Monero Badge: Logo Text
82uymVXLkvVbB4c4JpTd1tYm1yj1cKPKR2wqmw3XF8YXKTmY7JrTriP4pVwp2EJYBnCFdXhLq4zfFA6ic7VAWCFX5wfQbCC

Konfigurieren einer Master-Slave Replikation mit MySQL

Master konfiguration

  1. Erstelle einen Benutzer für die Replikation (mindestens Grant Berechtigung auf alle Datenbanken)
  2. Falls die DB in Benutzung ist muss der Schreibzugriff erst einmal gesperrt werden:
    mysql> FLUSH TABLES WITH READ LOCK;
  3. Exportiere alle aktuellen Datenbanken des Master Servers
  4. Anpassen der my.cnf Datei auf dem Master. (/etc/mysql/my.cnf)
[mysqld]
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1

MySQL neu starten

  1. Lese die Aktuellen Daten des Binär Logs ausmysql> SHOW MASTER STATUS;und notiere Sie für den späteren gebrauch auf den Slave Server.

 

Slave configuration

  1.  Anpassen der my.cnf auf dem Slave. (/etc/mysql/my.cnf)
[mysqld]
server-id=2

MySQL neu starten

  1. Die aktuellen Daten des Master-Servers (die zuvor exportiert wurden) auf dem zukünftigen Slave-Server importieren.
  2. Folgenden Befehl ausführen:
mysql> CHANGE MASTER TO-> MASTER_HOST='master_host_name',
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name', (info von Oben)
-> MASTER_LOG_POS=recorded_log_position;  (info von Oben)

Den MySQL-Slave starten:

mysql> START SLAVE;

Der Status kann mit

mysql> SHOW slave STATUS;

abgefragt warden. Als Status sollte „Waiting for Master to send event” stehen.