Εισαγωγή
Ρυθμίστε τον κύριο κόμβο
Ρυθμίστε τον υποτελή κόμβο
Εισαγωγή
Όταν εκτελείτε έναν κρίσιμο ιστότοπο, είναι σημαντικό να βεβαιωθείτε ότι διαθέτετε τουλάχιστον έναν περιττό εφεδρικό διακομιστή. Αυτό διασφαλίζει ότι η βάση δεδομένων σας συγχρονίζεται σε πραγματικό χρόνο. Η MySQL αναφέρεται στον συγχρονισμό της βάσης δεδομένων ως αναπαραγωγή. Αυτό το σύντομο σεμινάριο παρέχει οδηγίες σχετικά με το πώς να ρυθμίσετε μια αντιγραφή Master-slave MySQL.
Ρυθμίστε τον κύριο κόμβο
Επεξεργαστείτε /etc/mysql/my.cnf
για να απενεργοποιήσετε τη σύνδεση IP.
Σχολιάστε τις ακόλουθες γραμμές:
bind-address = 127.0.0.1
skip-networking
Δημιουργήστε νέες ρυθμίσεις για αναπαραγωγή εκτελώντας τις ακόλουθες εντολές:
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
Κάντε επανεκκίνηση του διακομιστή MySQL.
/etc/init.d/mysql restart
Δημιουργήστε έναν υποτελή χρήστη στη MySQL εκτελώντας τις ακόλουθες εντολές στην κονσόλα MySQL.
CREATE USER 'slave'@'SLAVE_SERVER_IP_ADDRESS' identified by 'YOUR_SLAVE_PASSWORD';
GRANT ALL ON *.* TO 'slave'@'SLAVE_SERVER_IP_ADDRESS';
FLUSH PRIVILEGES;
Τώρα, κλειδώστε την πρόσβαση εγγραφής στη βάση δεδομένων σας:
FLUSH TABLES WITH READ LOCK;
Λήψη κατάστασης κύριου κόμβου:
SHOW MASTER STATUS;
Σημείωση: Καταγράψτε τις τιμές των πεδίων "Αρχείο" και "Θέση", καθώς θα χρειαστεί να τις αναφέρουμε αργότερα για τον υποτελή κόμβο.
Ανοίξτε μια άλλη συνεδρία SSH και απορρίψτε τη βάση δεδομένων σας χρησιμοποιώντας την ακόλουθη εντολή:
mysqldump -u MYSQL_USERNAME -pMYSQL_PASSWORD --databases YOUR_DATABASE_ONE YOUR_DATABASE_TWO > database.sql
Επιστρέψτε στην προηγούμενη περίοδο λειτουργίας SSH και δώστε την ακόλουθη εντολή στην κονσόλα MySQL για να ξεκλειδώσετε την πρόσβαση εγγραφής:
UNLOCK TABLES;
Μεταφέρετε το database.sql
δημιουργημένο στο προηγούμενο βήμα στον υποτελή κόμβο.
Ρυθμίστε τον υποτελή κόμβο
Επεξεργαστείτε /etc/mysql/my.cnf
για να απενεργοποιήσετε τη σύνδεση IP.
Σχολιάστε τις ακόλουθες γραμμές:
bind-address = 127.0.0.1
skip-networking
Δημιουργήστε νέες ρυθμίσεις για αναπαραγωγή εκτελώντας την ακόλουθη εντολή:
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
Κάντε επανεκκίνηση του διακομιστή MySQL.
/etc/init.d/mysql restart
Εισαγωγή που database.sql
δημιουργήθηκε από τον κύριο κόμβο μόλις τώρα χρησιμοποιώντας αυτήν την εντολή:
mysql -u MYSQL_USERNAME-pMYSQL-PASSWORD < database.sql
Τώρα, ας ξεκινήσουμε την αναπαραγωγή. Ανοίξτε την κονσόλα MySQL, εκτελέστε τις ακόλουθες εντολές:
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;
Σημείωση: Η τιμή για MASTER_LOG_FILE
και MASTER_LOG_POS
είναι "Αρχείο" και "Θέση" που καταγράψαμε από τη ρύθμιση του κύριου κόμβου.