MySQL Replikasyonu Nasıl Yapılır? Adım Adım Rehber

MySQL Replikasyonu Nasıl Yapılır? Adım Adım Rehber

MySQL replikasyonu, veritabanı yönetimini daha güvenli ve hızlı hale getiren güçlü bir araçtır. Bu rehber, MySQL replikasyonunun nasıl kurulacağına dair adım adım bir anlatım sunuyor.

BFS

MySQL Replikasyonu Nedir?



Bir gün, büyük bir web projenizin veritabanı büyüdü ve artık tüm sorguları tek bir sunucuya yüklemek zorlayıcı hale geldi. Veritabanınızın hızını ve güvenliğini artırmak istiyorsunuz. İşte tam o noktada, MySQL replikasyonu devreye giriyor.

MySQL replikasyonu, veritabanındaki verilerin birden fazla sunucuya kopyalanması işlemidir. Bu sayede, veritabanınızın yedeğini almak, veri erişimini hızlandırmak ve yük dengelemesi yapmak mümkün olur. İki ana türü vardır:

- Master-Slave Replikasyonu: Ana veritabanı (master), veri değişikliklerini kopyalar ve diğer veritabanları (slave) bu değişiklikleri alır.
- Master-Master Replikasyonu: Her iki sunucu da veri değişikliklerini paylaşır, yani her iki sunucu da hem master hem de slave görevini üstlenir.

Şimdi gelin, MySQL replikasyonu kurulumunun adımlarına bakalım.

Adım 1: MySQL Sunucularının Hazırlanması



İlk adımda, replikasyonun yapılacağı iki sunucuya ihtiyacımız var. Bunlardan biri master (ana) sunucusu, diğeri ise slave (köle) sunucusu olacak. Her iki sunucunun da MySQL’in aynı sürümünü kullandığından emin olun. Aksi takdirde uyumsuzluklar ortaya çıkabilir.

Adım 2: Master Sunucusunda Konfigürasyon



Master sunucusunda replikasyon için bazı ayarları yapmamız gerekiyor. Bu ayarları yapabilmek için MySQL'in yapılandırma dosyasını düzenlemeniz gerekecek. Aşağıdaki adımları takip edin:

1. MySQL yapılandırma dosyasını açın:

```bash
sudo nano /etc/mysql/my.cnf
```

2. Bu satırları ekleyin:

```ini
[mysqld]
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db = testdb
```

- server-id: Her sunucuya benzersiz bir ID atamanız gerekecek. Master sunucu için `1` değeri kullanılabilir.
- log-bin: Binlog (binary log) özelliğini aktif hale getiriyoruz. Bu loglar, veritabanındaki değişiklikleri kaydeder.
- binlog-do-db: Hangi veritabanının replikasyonunu yapacağınızı belirliyoruz. Burada "testdb" örnek bir veritabanıdır.

3. MySQL servisini yeniden başlatın:

```bash
sudo service mysql restart
```

4. Master sunucusunda bir kullanıcı oluşturun (replikasyon için):

Master sunucusunda, slave sunucusunun veri okuma yetkisini alabilmesi için bir kullanıcı oluşturmanız gerekecek. Aşağıdaki SQL komutunu kullanarak bu kullanıcıyı oluşturun:

```sql
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
```

5. Master sunucusunda binary log pozisyonunu not edin:

```sql
SHOW MASTER STATUS;
```

Bu komut, master sunucusunun mevcut log pozisyonunu gösterir. Bu bilgiyi bir kenara not edin çünkü slave sunucusuna bağlanırken kullanacağız.

Adım 3: Slave Sunucusunda Konfigürasyon



Slave sunucusunda da bazı ayarlar yapmamız gerekiyor. Yine, yapılandırma dosyasını açıyoruz:

1. Slave sunucusunda yapılandırma dosyasını açın:

```bash
sudo nano /etc/mysql/my.cnf
```

2. Aşağıdaki satırları ekleyin:

```ini
[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay.log
log-bin = /var/log/mysql/mysql-bin.log
```

- server-id: Slave sunucusu için benzersiz bir ID belirtin. Burada `2` kullanılabilir.

3. MySQL servisini yeniden başlatın:

```bash
sudo service mysql restart
```

4. Slave sunucusuna master bilgilerini verin:

Slave sunucusunda, master sunucusuna bağlanmak için aşağıdaki SQL komutlarını kullanın. Burada, master sunucusunun IP adresi ve binary log pozisyonunu kullanacağız.

```sql
CHANGE MASTER TO
MASTER_HOST='master_ip_address',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 154;
```

Burada, `MASTER_LOG_FILE` ve `MASTER_LOG_POS` değerlerini, master sunucusundan aldığınız verilerle doldurun.

5. Slave sunucusunu başlatın:

```sql
START SLAVE;
```

Adım 4: Replikasyonun Durumunu Kontrol Etme



Replikasyonun düzgün çalışıp çalışmadığını kontrol etmek için, slave sunucusunda aşağıdaki komutu kullanabilirsiniz:

```sql
SHOW SLAVE STATUS\G
```

Eğer her şey doğruysa, Slave_IO_Running ve Slave_SQL_Running değerleri Yes olarak görünmelidir.

Adım 5: Test Etme



Son olarak, master sunucusunda bir veri değişikliği yaparak replikasyonun doğru çalışıp çalışmadığını test edelim:

```sql
USE testdb;
INSERT INTO users (name, email) VALUES ('Test User', 'test@example.com');
```

Slave sunucusuna gidip aynı sorguyu çalıştırarak, verinin replikasyondan geçtiğini kontrol edin. Eğer doğru bir şekilde replikasyon gerçekleşmişse, yeni veriyi görmelisiniz.

MySQL Replikasyonunun Faydaları



MySQL replikasyonu, birçok avantaj sunar. Bunlardan bazıları:

- Veri Yedekleme: Master sunucusunda meydana gelen herhangi bir sorun, slave sunucusundan alınacak verilerle çözülebilir.
- Yük Dengeleme: Sorgular slave sunucularına yönlendirilerek master sunucunun üzerindeki yük azaltılabilir.
- Veri Güvenliği: Replikasyon, verilerinizi korumanın harika bir yoludur. Eğer bir sunucu çökse bile, diğer sunucularda yedeğiniz bulunur.

Sonuç



MySQL replikasyonu kurulumunun temel adımlarını öğrendiniz. Bu basit adımlarla, veritabanı yönetimini daha güvenli ve verimli hale getirebilirsiniz. Replikasyonun gücünü keşfettiğinizde, veritabanı performansını artırmak ve daha sağlam bir altyapı kurmak elinizde!

İlgili Yazılar

Benzer konularda diğer yazılarımız

"Veri Güvenliği: MySQL Veritabanınızı Hack’lere Karşı Nasıl Korursunuz?"

Veri güvenliği, günümüz dijital dünyasında en kritik konulardan biri haline geldi. Özellikle veritabanları, saldırganların hedef aldığı ve hassas verilerin çalındığı ilk yerlerden biridir. MySQL veritabanları, dünya çapında en çok kullanılan açık kaynaklı...

Yapay Zeka ile Veritabanı Yönetimi: Geleceğin Veri Tabanlarını Bugünden Keşfedin

Günümüzde teknoloji hızla ilerliyor ve bu ilerleme, veritabanı yönetimini de derinden etkiliyor. Ancak bir soru var: “Veritabanları nasıl daha verimli, güvenli ve hızlı hale getirilebilir?” Cevap aslında çok yakın: Yapay zeka! Evet, veritabanı yönetimi...

Karmaşık Veritabanı Yönetiminde Yeni Nesil Çözümler: Mikroservisler ile Veri Bütünlüğü ve Performans Optimizasyonu

Karmaşık Veritabanı Yapılarına Yenilikçi YaklaşımDijital dönüşümün hızla ilerlediği günümüzde, işletmeler daha büyük veri kümeleriyle başa çıkabilmek için sürekli yenilik arayışında. Geleneksel monolitik veritabanı yapıları, zamanla bu büyüyen veriye...