Breaking News




Popular News












Enter your email address below and subscribe to our newsletter

Setting up MySQL replication Ensuring data availability and redundancy is a critical aspect of database management.
Η διασφάλιση της διαθεσιμότητας και της πλεονασμού των δεδομένων αποτελεί κρίσιμο στοιχείο της διαχείρισης βάσεων δεδομένων. Setting up MySQL replication επιτρέπει στις επιχειρήσεις να επιτύχουν υψηλή διαθεσιμότητα, ανάκτηση από καταστροφές και βελτιωμένη απόδοση. Το MySQL replication επιτρέπει τον αυτόματο συγχρονισμό δεδομένων μεταξύ ενός master server και ενός ή περισσότερων slave servers, μειώνοντας το downtime και εξασφαλίζοντας αδιάλειπτη πρόσβαση σε κρίσιμες πληροφορίες.
Με την υλοποίηση του MySQL replication, μπορείτε να κατανείμετε τα ερωτήματα βάσης δεδομένων, να ενισχύσετε την ανεκτικότητα σε σφάλματα και να προετοιμαστείτε για πιθανές αστοχίες χωρίς να διακόψετε τις λειτουργίες.
Το MySQL replication είναι μια διαδικασία που επιτρέπει τον αυτόματο συγχρονισμό δεδομένων μεταξύ δύο ή περισσότερων MySQL servers. Είναι απαραίτητο για την επίτευξη redundancy, load balancing, and disaster recovery.
Για αυτόν τον οδηγό, θα επικεντρωθούμε στο Master-Slave Replicationτο οποίο είναι και το πιο συχνά χρησιμοποιούμενο.
Πριν ξεκινήσουμε, βεβαιωθείτε ότι διαθέτετε:
Για περισσότερες λεπτομέρειες, δείτε την επίσημη τεκμηρίωση: MySQL Replication Guide
Open the my.cnf or mysqld.cnf file (usually located in /etc/mysql/) and modify the following settings:
[mysqld]
bind-address = 0.0.0.0
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = mydatabase # Specify the database to replicateRestart MySQL for changes to take effect:
sudo systemctl restart mysqlLog in to MySQL and create a dedicated user for replication:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'StrongPassword';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;Run the following command to get the log file name and position:
SHOW MASTER STATUS;Take note of File and Position values, as they will be needed on the slave server.
Modify the my.cnf or mysqld.cnf file on the slave server:
[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin.logRestart MySQL:
sudo systemctl restart mysqlRun the following SQL commands to connect the slave to the master:
CHANGE MASTER TO
MASTER_HOST='Master_IP_Address',
MASTER_USER='replicator',
MASTER_PASSWORD='StrongPassword',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123456;(Replace Master_IP_Address, mysql-bin.000001, and 123456 with the actual values from the master server.)
START SLAVE;Verify that replication is running:
SHOW SLAVE STATUS \G;If Slave_IO_Running and Slave_SQL_Running are both ‘Yes’, replication is working correctly!
To test the setup, insert data into the master server:
USE mydatabase;
INSERT INTO users (id, name) VALUES (1, 'John Doe');Now, check the slave server:
SELECT * FROM users;If the record appears, your replication is successfully set up!
Replication stopped unexpectedly? Check the error log:
tail -f /var/log/mysql/error.logSlave SQL or IO thread not running? Restart replication:
STOP SLAVE;
START SLAVE;
SHOW SLAVE STATUS \G;Master and slave desynchronized? Resync by taking a fresh dump from the master:
mysqldump -u root -p --all-databases --master-data > backup.sqlCopy the dump to the slave and restore it:
mysql -u root -p < backup.sqlRestart replication after restoring.
For additional troubleshooting steps, refer to this MySQL troubleshooting guide: MySQL Troubleshooting
Η ρύθμιση MySQL replication αποτελεί καθοριστικό παράγοντα για υψηλή διαθεσιμότητα, εξισορρόπηση φορτίου και ανάκτηση από καταστροφές. Είτε διαχειρίζεστε μια μικρή ιστοσελίδα είτε μια επιχειρησιακού επιπέδου εφαρμογή, το replication διασφαλίζει ότι τα δεδομένα σας παραμένουν διαθέσιμα ακόμη και σε περίπτωση αστοχιών.
🔹 Next Steps: Consider implementing failover mechanisms like MySQL Group Replication or using a load balancer such as HAProxy to improve performance even further!
For more advanced replication setups, check this guide on Group Replication.