23 Jun

MySQL Replication Nedir, Nasıl Yapılır -II

 

2- Slave Konfigürasyonu

 

Slave de öncelikle exampledb veritabanını oluşturmalıyız:

mysql -u root -p

Enter password:

CREATE DATABASE exampledb;

quit;

 

Master da bulunan exampledb nin dökümünü alıp slave e transfer ettiyseniz, şimdi slave de yeni oluşturduğunuz exampledb ye SQL dökümünü aktarmanın tam zamanı.

 

mysql -u root -p<password> exampledb < /path/to/exampledb.sql (<password> yerine kendi şirfenizi girin! Önemli: -p ile <password> arasında boşluk olmamalı!)

 

LOAD DATA FROM MASTER kullamak istiyorsanız şimdilik burada gerçekleştireceğiniz birşye yok.

 

Şimdi slave deki MySQL e kendisinin slave olduğunu, master in 192.168.0.100 ve master veritabanı olarak exampledb yi aramasını söyleyeceğiz. Bunun için aşağıdaki satırları

/etc/mysql/my.conf dosyasına ekleyelim:

 

server-id=2

master-host=192.168.0.100

master-user=slave_user

master-password=secret

master-connect-retry=60

replicate-do-db=exampledb

 

ve sonra MySQL i yeniden başlatın:

 

/etc/init.d/mysql restart

 

Master exampledb yi SQL dökümü yardımı ile aktarmadıysanız ve LOAD DATA FROM MASTER yöntemi ile devam etmek istiyorsanız, master exampledb den verileri almanın tam zamanı:

 

mysql -u root -p

Enter password:

LOAD DATA FROM MASTER;

quit;

 

PhpMyAdmin kullanıyorsanız master exampledb de bulunan tüm tablo ve verilerin slave de bulunan exampledb bulunup bulunmadığını kontrol edebilirsiniz.

 

Son olarak şunu yapmalıyız:

 

mysql -u root -p

Enter Password:

SLAVE STOP;

 

Sonraki yazacağımız komut satırındaki komut değerlerini doğru bir biçimde yazmalısınız:

 

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;

 

  • MASTER_HOST                  master in IP adresi veya sunucu adıdır (örneğimizde bu 192.168.0.100 dir).

  • MASTER_USER                 master üzerinde Replication haklarını tanımladığımız kullanıcıdır.

  • MASTER_PASSWORD    master da bulunan MASTER_USER in şifresidir

  • MASTER_LOG_FILE      master üzerinde SHOW MASTER STATUS komutu çalıştırıldığında MySQL tarafından verilen dosya

  • MASTER_LOG_POS       master üzerinde SHOW MASTER STATUS komutu çalıştırıldığında MySQL tarafından verilen pozisyon

 

Şimdi komut satırındayken slave i çalıştıralım:

 

START SLAVE;

quit;

 

Hepsi bu kadar! Master daki exampledb güncellendiğinde bütün değişiklikler slave de bulunan exampledb ye uygulanacak. Test edin!