Introduksjon
Sett opp masternoden
Sett opp slavenoden
Introduksjon
Når du kjører et kritisk nettsted, er det viktig å sørge for at du har minst én redundant backupserver. Dette sikrer at databasen din synkroniseres i sanntid. MySQL refererer til databasesynkronisering som replikering. Denne korte opplæringen gir instruksjoner om hvordan du setter opp en master-slave MySQL-replikering.
Sett opp masternoden
Rediger for /etc/mysql/my.cnfå deaktivere IP-binding.
Kommenter følgende linjer:
bind-address = 127.0.0.1
skip-networking
Opprett nye innstillinger for replikering ved å kjøre følgende kommandoer:
cat >/etc/mysql/conf.d/replication.cnf <<EOF
[mysqld]
server-id = 100
log_bin = /var/log/mysql/mysql-bin.log
binlog-do-db = YOUR_DATABASE_ONE
binlog-do-db = YOUR_DATABASE_TWO
EOF
Start MySQL-serveren på nytt.
/etc/init.d/mysql restart
Opprett en slavebruker i MySQL ved å kjøre følgende kommandoer i MySQL-konsollen.
CREATE USER 'slave'@'SLAVE_SERVER_IP_ADDRESS' identified by 'YOUR_SLAVE_PASSWORD';
GRANT ALL ON *.* TO 'slave'@'SLAVE_SERVER_IP_ADDRESS';
FLUSH PRIVILEGES;
Nå, lås skrivetilgang til databasen din:
FLUSH TABLES WITH READ LOCK;
Få master node status:
SHOW MASTER STATUS;
Merk: Skriv ned verdiene til feltene "Fil" og "Posisjon", da vi må referere til dem senere for slavenoden.
Åpne en annen SSH-økt og dump ut databasen din ved å bruke følgende kommando:
mysqldump -u MYSQL_USERNAME -pMYSQL_PASSWORD --databases YOUR_DATABASE_ONE YOUR_DATABASE_TWO > database.sql
Gå tilbake til forrige SSH-økt og utfør følgende kommando i MySQL-konsollen for å låse opp skrivetilgang:
UNLOCK TABLES;
Overfør det database.sqlopprettede i forrige trinn til slavenoden.
Sett opp slavenoden
Rediger for /etc/mysql/my.cnfå deaktivere IP-binding.
Kommenter følgende linjer:
bind-address = 127.0.0.1
skip-networking
Opprett nye innstillinger for replikering ved å kjøre følgende kommando:
cat >/etc/mysql/conf.d/replication.cnf <<EOF
[mysqld]
server-id = 101
log_bin = /var/log/mysql/mysql-bin.log
binlog-do-db = YOUR_DATABASE_ONE
binlog-do-db = YOUR_DATABASE_TWO
EOF
Start MySQL-serveren på nytt.
/etc/init.d/mysql restart
Import database.sqlopprettet fra hovednoden akkurat nå ved å bruke denne kommandoen:
mysql -u MYSQL_USERNAME-pMYSQL-PASSWORD < database.sql
La oss nå starte replikeringen. Åpne MySQL-konsollen, kjør følgende kommandoer:
SLAVE STOP;
CHANGE MASTER TO MASTER_HOST='MASTER_SERVER_IP_ADDRESS', MASTER_USER='slave', MASTER_PASSWORD='YOUR_SLAVE_PASSWORD', MASTER_LOG_FILE='FILE_VALUE_FROM_MASTER', MASTER_LOG_POS=POSITION_VALUE_FROM_MASTER;
SLAVE START;
Merk: Verdien for MASTER_LOG_FILEog MASTER_LOG_POSer "Fil" og "Posisjon" som vi skrev ned fra hovednodens oppsett.