Spis treści
Replikacja MySQL
Master
my.cnf:
log-bin = /var/log/mysql/mysql-bin.log binlog-do-db=exampledb server-id=1
Oprócz tego pozwalamy na zdalne blokowanie tabel i przyjmowanie połączeń z sieci zewn.
Użytkownik do deplikacji
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY '<some_password>'; (Replace <some_password> with a real password!) FLUSH PRIVILEGES;
SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+ | File | Position | Binlog_do_db | Binlog_ignore_db | +---------------+----------+--------------+------------------+ | mysql-bin.006 | 183 | exampledb | | +---------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
UNLOCK TABLES;
Slave
my.cnf:
server-id=2
Reszta rzeczy będzie bezpośrednio w bazie. Niektóre tutoriale podają, że można też i tu.
LOAD DATA FROM MASTER;
To jeśli istnieją już jakieś dane
SLAVE STOP;
CHANGE MASTER TO MASTER_HOST='192.168.0.100', MASTER_USER='slave_user', MASTER_PASSWORD='<some_password>', MASTER_LOG_FILE='mysql-bin.006', MASTER_LOG_POS=183;
Najlepiej przeczytać sobie to, co zwraca:
\h CHANGE MASTER TO
W skrócie:
-
MASTER_HOST - adres serwera master
-
MASTER_USER - user
-
MASTER_PASSWORD - hasło
-
MASTER_LOG_FILE - dane z mastera
-
MASTER_LOG_POS - dane z mastera
START SLAVE;