MySQL master-slave replikasyonu, bir veritabanındaki değişikliklerin başka bir veritabanına kopyalanmasını sağlayan bir yöntemdir. Bu yöntem, veritabanı güvenliği ve erişilebilirliğini artırmak için kullanılır. Bu makalede, MySQL master-slave replikasyonunu nasıl kuracağınızı adım adım anlatacağız.
Veritabanı güvenliği ve erişilebilirliği için veritabanı replikasyonu oldukça önemli bir kavramdır. Replikasyon, bir veritabanındaki değişikliklerin başka bir veritabanına kopyalanmasını sağlayan bir işlemdir. Bu sayede, ana veritabanında meydana gelen değişikliklerin yedeği alınabilir ve olası bir arıza durumunda diğer veritabından erişilebilir hale getirilebilir.
MySQL veritabanı için master-slave replikasyonu, en yaygın kullanılan replikasyon türüdür. Bu yapıda, bir sunucu (master) ana veritabanını barındırırken, diğer sunucu (slave) değişiklikleri otomatik olarak master’dan kopyalar.
Bu makalede, MySQL master-slave replikasyonunu nasıl kuracağınızı adım adım anlatacağız.
Master Sunucu Ayarları
Master sunucuda aşağıdaki ayarları yapmanız gerekir:
- MySQL konfigürasyon dosyasını açın ve
server-id
velog_bin
değerlerini güncelleyin.
Ini, TOML
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
Kodu kullanırken dikkatli olun.
server-id
değeri, her iki sunucu için de benzersiz olmalıdır. log_bin
değeri, master sunucunun binary log dosyasının yolunu belirtir.
- Bir replikasyon kullanıcısı oluşturun.
SQL
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
Kodu kullanırken dikkatli olun.
Bu kullanıcı, slave sunucunun master sunucuyla iletişim kurmasını sağlayacaktır.
- Veritabanını kilitleyin ve SHOW MASTER STATUS komutunu çalıştırın.
SQL
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
Kodu kullanırken dikkatli olun.
Bu komut, master sunucunun binary log dosyasının durumunu görüntüler. Bu bilgiler, slave sunucuyu yapılandırmak için gereklidir.
Slave Sunucu Ayarları
Slave sunucuda aşağıdaki ayarları yapmanız gerekir:
- MySQL konfigürasyon dosyasını açın ve
server-id
verelay-log
değerlerini güncelleyin.
Ini, TOML
[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin.log
Kodu kullanırken dikkatli olun.
server-id
değeri, master sunucudaki server-id
değerinden farklı olmalıdır. relay-log
değeri, slave sunucunun relay log dosyasının yolunu belirtir.
- Slave sunucuyu yapılandırın.
Aşağıdaki komutu kullanarak, master sunucunun IP adresini, replikasyon kullanıcısının adını ve şifresini, master sunucunun binary log dosyasının adını ve konumunu belirtin.
SQL
CHANGE MASTER TO MASTER_HOST='master_ip_address', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='<MASTER_LOG_FILE>', MASTER_LOG_POS=<MASTER_LOG_POS>;
Kodu kullanırken dikkatli olun.
<MASTER_LOG_FILE>
ve <MASTER_LOG_POS>
değerlerini, master sunucudan alınan SHOW MASTER STATUS komutunun çıktısına göre güncelleyin.
Slave Sunucunun Durumunu Kontrol Etme
Slave sunucunun replikasyon durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
SQL
SHOW SLAVE STATUS\G;
Kodu kullanırken dikkatli olun.
Bu komut, slave sunucunun replikasyon durumunu ayrıntılı olarak görüntüler. Slave_IO_Running
ve Slave_SQL_Running
değerlerinin “Yes” olması gerekir.
Master Sunucudaki Kilidi Kaldırma
Master sunucudaki kilidi kaldırmak için aşağıdaki komutu kullanın:
SQL
UNLOCK TABLES;
Kodu kullanırken dikkatli olun.
Bu adımları takip ederek, master sunucudaki değişiklikler otomatik olarak slave sunucuya iletilir. Replikasyon durumunu kontrol etmek ve olası hataları incelemek için SHOW SLAVE