# MySQL Master/Slave-Replikation einrichten (offline) Einfach und umkompliziert eine MySQL Master/Slave-Replikation einrichten (OFFLINE, empfohlen bei InnoDB-Datenbanken) -
User für Replikation einrichten:
```code GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.domain.de' IDENTIFIED BY 'slavepass'; ``` -
Auf dem Master-Server /etc/my.cnf bearbeiten, in der [mysqld]-Sektion ergänzen und danach den MySQL-Server neu starten:
```code # replikation log-bin=mysql-bin server-id=1 innodb_flush_log_at_trx_commit=1 sync_binlog=1 ``` -
Auf dem Slave-Server /etc/my.cnf bearbeiten, in der [mysqld]-Sektion ergänzen und danach den MySQL-Server neu starten:
```code # replikation server-id=2 ``` -
Auf dem Master-Server die Tables speeren, die Datenbank anhalten und die binary-Dateien auf das Slave-System kopieren:
```code mysql -p mysql> FLUSH TABLES WITH READ LOCK; ( eventuell bei InnoDB mit Transaktionen den Server ganz stoppen: service mysqld stop ) ``` -
Achtung: Die Shell jetzt NICHT beenden, da der Schreibschutz sonst wieder aufgehoben wird!
```code cd /var/lib rsync -avr -e ssh mysql sqlserver2.domain.de:/var/lib/ ``` -
Nach dem Kopieren wird der Master wieder freigegeben:
```code ( wurde der Server vorher gestoppt, so muss er jetzt wieder gestartet werden: service mysqld start ) mysql> SHOW MASTER STATUS; mysql> UNLOCK TABLES; ``` Die Werte von File und Position merken, die werden gleich gebraucht. -
Auf dem Slave-Server die Datenbank starten, die Replikation konfigurieren und starten:
```code service mysqld start mysql -u root -p mysql> CHANGE MASTER to MASTER_HOST='sqlserver1.domain.de’,MASTER_PORT=3306, MASTER_USER='repl',MASTER_PASSWORD='slavepass',MASTER_LOG_FILE='',MASTER_LOG_POS=; mysql> START SLAVE; ```