Sales5 min read1180 words

MySQL Master-Slave Replikasyon Konfigürasyonu Nasıl Yapılır ?

Fatih Çevik

Fatih Çevik

PlusClouds Author

Cloud & SaaS

MySQL Master-Slave Replikasyonu nasıl yapılır ?
Size

Voordat we naar het gedeelte over hoe het te doen gaan, laten we kort de vereisten bespreken.

  • We hebben minimaal 2 fysieke of virtuele machines nodig. In dit artikel zullen we twee Debian 10 virtuele machines gebruiken. We raden ten zeerste aan om dezelfde distributies te gebruiken. Beide virtuele machines moeten dezelfde MySQL-versie geïnstalleerd hebben.
  • Firewall configuratie met ufw.
  • Voor de communicatie tussen de master- en slave-machines is een geïnstalleerde en gesynchroniseerde NTP-server op beide vereist.

Aangezien we kort over de vereisten hebben gesproken, kunnen we doorgaan naar het configuratiegedeelte.

1. NTP-configuratie

Onze eerste stap zal zijn om op beide machines dezelfde NTP-configuratie in te stellen. Als je het nog niet hebt geïnstalleerd, kun je NTP-server installeren met de onderstaande opdracht.

apt -y install ntp

Nu zullen we de NTP-servers die we hebben geïnstalleerd configureren zodat ze met elkaar gesynchroniseerd zijn. In dit artikel zullen we de Aziatische NTP-servers gebruiken.

*nano /etc/ntp.conf*
server 0.asia.pool.ntp.org iburst
server 1.asia.pool.ntp.org iburst
server 2.asia.pool.ntp.org iburst
server 3.asia.pool.ntp.org iburst

Na het bewerken van het conf-bestand, slaan we het op en herstarten we de NTP-service.

*/etc/init.d/ntp restart*

2. Machines Moeten Elkaar Herkennen

Alle servers die we gebruiken moeten elkaar herkennen en zonder problemen met elkaar kunnen communiceren. Als beschikbaar, kun je local DNS gebruiken. In ons voorbeeld zullen we het hosts-bestand configureren omdat we geen DNS hebben.

*nano /etc/hosts*
master_server_ip master_server_hostname
slave_server_ip slave_server_hostname

Vergeet niet dat alle configuraties die we maken op alle servers volledig moeten worden uitgevoerd VERGEET DIT NIET.

3. Firewall-configuratie

Als je het nog niet hebt geïnstalleerd, moet je eerst ufw installeren met de onderstaande opdracht.

apt -y install ufw

Als je verbinding maakt via SSH, moet je na installatie eerst toegang verlenen tot de SSH-poort. Anders kun je je SSH-verbinding verliezen wanneer je de ufw-service start.

ufw allow 22
ufw allow from slave_server_ip to any port 3306
systemctl enable ufw
systemctl start ufw
ufw enable

We hebben eerst toestemming gegeven voor poort 22, dat wil zeggen SSH-poort; de regel die we hebben geschreven is de toestemming voor poort 3306, die door MySQL wordt gebruikt. Vergeet niet het slave_server_ip-gedeelte te vervangen door het IP-adres van je slave-machine.

Als alles tot nu toe in orde is, kunnen we nu beginnen met de configuratie van onze masterserver.

4. Masterserver-configuratie

In Debian 10 bevindt het configuratiebestand voor de MySQL-server zich onder **mysqld.cnf** in de map **/etc/mysql/mysql.conf.d/**. We openen het eerst met de **nano** editor op onze masterserver. Als je een andere editor verkiest, kun je die ook gebruiken.

nano /etc/mysql/mysql.conf.d/mysqld.cnf

Na het openen van het bestand passen we eerst het verbindingsadres aan. Als de regel erbij staat, pas deze aan, als deze er niet bij staat, voeg deze dan zelf toe.

bind-address = master_server_ip

Na het aanpassen van de bind-address, zoek je de regel **server-id**. Als deze er niet staat, voeg deze dan zoals hierboven toe. Je kunt de waarde 1 geven, deze waarde moet uniek zijn voor elke server.

server-id = 1

Na deze stap moeten we de locatie van het MySQL-binary logbestand opgeven. Als dit pad niet wordt opgegeven, is de binary logfunctie inactief en kan je slave-server het logbestand niet lezen, waardoor deze niet weet wat er gerepliceerd moet worden. We geven het pad als volgt op.

log_bin = /var/log/mysql/mysql-bin.log

Tenslotte moeten we de database of databases opgeven die gerepliceerd moeten worden.

binlog_do_db = testdb

Na het aanbrengen van de wijzigingen sla je op door achtereenvolgens op de toetsen CTRL + X, Y en ENTER te drukken.

Na het afsluiten herstarten we de MySQL-service.

systemctl restart mysql

We hebben het configuratiedeel van onze masterserver afgerond, maar voordat we verder gaan naar onze slave-server moeten we nog een paar kleine dingen doen. We moeten een gebruiker aanmaken waartoe de slave-server toegang heeft voor replicatie. We gaan verder met de MySQL-shell.

mysql -u root -p
CREATE USER 'slave_user'@'slave_server_ip' IDENTIFIED WITH mysql_native_password BY 'password';
Let op dat deze opdracht aangeeft dat de slave-gebruiker de mysql native password authenticatie-plugin zal gebruiken. In plaats daarvan is het ook mogelijk om de caching_sha2_password te gebruiken, wat de standaard authenticatiemechanisme van MySQL is, maar hiervoor moet een versleutelde verbinding tussen de master- en slave-server worden opgezet. Dit soort configuratie is ideaal voor productieomgevingen, maar een versleutelde verbindingconfiguratie is niet opgenomen in deze handleiding.
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'slave_server_ip';
FLUSH PRIVILEGES;

Zo hebben we de configuratie van de masterserver afgerond. Hoewel onze configuratie klaar is, verlaat de MySQL-shell niet direct. In de volgende stap zullen we belangrijke informatie over het binary logbestand van onze database verkrijgen.

MySQL past replicatie toe door database-events regel voor regel te kopiëren vanuit het binary logbestand van de bron en elke gebeurtenis op de slave-server toe te passen. Daarom moeten we bij het configureren aan de slave-server de naam van het binary logbestand van de masterserver en de coördinaten die een specifieke locatie in dit bestand beschrijven, opgeven.


Om ervoor te zorgen dat geen enkele gebruiker gegevens wijzigt tijdens het verkrijgen van de coördinaten, moeten we de database tijdelijk vergrendelen.
FLUSH TABLES WITH READ LOCK;

Voer vervolgens de volgende code uit om de status van de binary logbestanden te bekijken.

SHOW MASTER STATUS;

```

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 | 899 | testdb | | |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

```

Je zult een soortgelijke uitvoer verkrijgen.

Als er nog geen database op je masterserver is, verwijder dan eerst de vergrendeling en maak een database aan.

UNLOCK TABLES;
CREATE DATABASE testdb;

Na deze stap is ons werk op de masterserver gedaan. Vergeet de informatie over het binary logbestand die we in de bovenstaande uitvoer hebben gekregen absoluut niet. We zullen het binnenkort gebruiken op onze slave-server.

5. Slave-serverconfiguratie

In dit gedeelte wijzigen we het configuratiebestand op een vergelijkbare manier als we dat op de masterserver hebben gedaan. We gaan de stappen snel door omdat ze hierboven zijn uitgelegd.

nano /etc/mysql/mysql.conf.d/mysqld.cnf
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = testdb

Tenslotte voegen we de relay-log-directive toe die het pad naar het relay logbestand op onze slave-server definieert.

relay-log = /var/log/mysql/mysql-relay-bin.log

Na het aanbrengen van de wijzigingen herstarten we ook hier de MySQL-service.

systemctl restart mysql

We zijn nu klaar om de replicatie te testen. We loggen in op de MySQL-shell op onze slave-server.

mysql -u root -p

Het is nu tijd voor het replicatieproces. We voeren de benodigde informatie in om de slave-server bekend te maken bij de masterserver.

CHANGE REPLICATION SOURCE TO
SOURCE_HOST='master_server_ip',
SOURCE_USER='slave_user',
SOURCE_PASSWORD='password',
SOURCE_LOG_FILE='mysql-bin.000001',
SOURCE_LOG_POS=899;
START REPLICA;

Als alle stappen correct zijn uitgevoerd, zullen alle wijzigingen die in de **testdb** database op de masterserver worden aangebracht ook naar onze slave-server gaan.

SHOW REPLICA STATUS\G

Op onze slave-server kunnen we de replicatiestatus zien met de bovenstaande opdracht.

```

*************************** 1. row ***************************

Replica_IO_State: Waiting for master to send event

Source_Host: 'slave_server_ip'

Source_User: slave_user

Source_Port: 3306

Connect_Retry: 60

Source_Log_File: mysql-bin.000001

Read_Source_Log_Pos: 1273

Relay_Log_File: mysql-relay-bin.000003

Relay_Log_Pos: 729

Relay_Source_Log_File: mysql-bin.000001

```

Je zult een soortgelijke uitvoer verkrijgen. Nu hebben we een MySQL-replicatie opgezet met een Master-Slave-relatie. Je kunt het testen door een tabel aan je database op de masterserver toe te voegen.

LeadOcean

Verkooptteam achtervolgt de verkeerde leads?

1,8B+ bedrijven — zoeken altijd gratis

Find My Leads →

No credit card · Cancel anytime

Veelgestelde Vragen

MySQL Master-Slave Replikasyonu için hangi altyapı gereksinimleri gerekir?

Replikasyon için en az iki makine gerekir; bu örnekte iki Debian 10 sanal makine kullanılıyor ve aynı dağıtım ile aynı MySQL sürümü gerekir. Ayrıca güvenlik için ufw ile firewall kurulumu ve makineler arasında haberleşme için senkronize NTP sunucuları gerekir.

NTP kurulumu ve senkronizasyonu nasıl yapılır?

İlk adım iki makinede de aynı NTP konfigürasyonunu yapmak; ntp paketi kurulur apt -y install ntp ve Asia pool sunucuları ile /etc/ntp.conf düzenlenir. Konfigürasyon tamamlandıktan sonra NTP servisi yeniden başlatılır.

Makineler birbirini nasıl tanımalı ve hangi ayarlar gerekli?

Sunucular birbirini tanımalı ve sorunsuz iletişim kurmalıdır; mevcutsa local DNS kullanılabilir, yoksa hosts dosyası ile master_server_hostname ve slave_server_hostname eşlenir. Yapılan konfigürasyonların tüm sunucularda eksiksiz olması çok önemlidir.

Firewall konfigürasyonu nasıl yapılır ve hangi portlar açık olmalı?

Öncelikle ufw kurulmalı; SSH için 22 numaralı porta izin verilmelidir, ardından slave makineden MySQL 3306 portuna erişim izni verilir. Daha sonra ufw servisi etkinleştirilir ve güvenlik kuralları uygulanır.

Master sunucusunun MySQL konfigürasyonu nelerdir?

Debian 10’da MySQL konfigürasyon dosyası /etc/mysql/mysql.conf.d/mysqld.cnf altında bulunur; bind-address olarak master_ip ayarlanır, server-id 1 yapılır, log_bin yolu belirtilir ve binlog_do_db ile hangi veritabanlarının loglanacağı belirlenir. Değişiklikler kaydedildikten sonra MySQL servisi yeniden başlatılır.

Master üzerinde replication için kullanıcı nasıl oluşturulur ve izinler nasıl verilir?

MySQL shell’e girip slave kullanıcısı oluşturulur: CREATE USER 'slave_user'@'slave_server_ip' IDENTIFIED WITH mysql_native_password BY 'password'; Ardından GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'slave_server_ip'; FLUSH PRIVILEGES; Bu örnekte mysql_native_password kullanımı belirtilmiştir.

Binary log bilgilerini almak için hangi adımlar izlenir ve kilit neden gerekir?

Binary log konumunu güvenli almak için FLUSH TABLES WITH READ LOCK komutu ile kilit uygulanır ve SHOW MASTER STATUS ile File ve Position bilgileri alınır. Kilit durumundan sonra kilit kaldırılıp gerekiyorsa veritabanı oluşturulur (UNLOCK TABLES; CREATE DATABASE testdb). Master log bilgileri daha sonra slave tarafında kullanılır.

Slave sunucusunda hangi ayarlar yapılır ve replika nasıl başlatılır?

Slave tarafında /etc/mysql/mysql.conf.d/mysqld.cnf üzerinde server-id 2, log_bin ve binlog_do_db testdb ile relay-log yolu belirlenir; değişiklikler sonrası MySQL servisi yeniden başlatılır. Ardından slave üzerinde CHANGE REPLICATION SOURCE TO SOURCE_HOST='master_server_ip', SOURCE_USER='slave_user', SOURCE_PASSWORD='password', SOURCE_LOG_FILE='mysql-bin.000001', SOURCE_LOG_POS=899; START REPLICA; SHOW REPLICA STATUS\G ile durumu kontrol edilir.

Gerelateerde Lectuur

Berichten getagd met:

WhatsApp Automatisering: De Nieuwe Manier om Leads naar Verkoop te Converteren
Sales

WhatsApp Automatisering: De Nieuwe Manier om Leads naar Verkoop te Converteren

Dijital dünyada rekabet artık sadece “daha fazla lead toplamak” üzerinden ilerlemiyor. Asıl fark yaratan, elde ettiğiniz lead’lere ne kadar hızlı, doğru ve kişiselleştirilmiş şekilde ulaştığınız. Bu noktada WhatsApp, yüksek etkileşim oranlarıyla en güçlü iletişim kanallarından biri olurken; n8n gibi araçlar sayesinde bu süreci tamamen otomatik ve ölçeklenebilir hale getirmek mümkün. Bu yazıda, n8n kullanarak WhatsApp otomasyonu kurmayı, Eaglet ve Leadocean gibi platformlardan gelen lead’leri satışa dönüştürmeyi ve bu süreci nasıl optimize edebileceğinizi detaylı şekilde ele alıyoruz.

Affiliate Inkomen met WhatsApp in 2026
Sales

Affiliate Inkomen met WhatsApp in 2026

2026 itibarıyla affiliate marketing artık sadece trafik üretmekle ilgili değil. Asıl farkı yaratan şey, o trafiği doğrudan satışa dönüştürebilmek. İşte burada WhatsApp devreye giriyor. 2026’da WhatsApp ile Affiliate Gelir nasıl elde edilir? E-posta açılma oranları düşerken, WhatsApp mesajlarının okunma oranı %90’ların üzerinde. Yani doğru stratejiyle WhatsApp, affiliate gelir için en güçlü “son temas noktası” haline geliyor. Ama burada kritik fark şu: Manuel mesaj atanlar değil, otomasyon kuranlar kazanıyor.

Affiliate Inkomen Genereren uit Instagram en TikTok in 2026
Sales

Affiliate Inkomen Genereren uit Instagram en TikTok in 2026

2026’da tüketici davranışı kökten değişti. İnsanlar artık bir ürünü Google’a yazıp uzun uzun araştırmıyor. Karşılarına çıkan, sorunlarını anlayan ve onları ikna eden bir videodan tek tıkla satın alıyor. Bu yeni düzene Sosyal Ticaret (Social Commerce) diyoruz. Ve bu oyunun iki ana sahnesi var: Instagram ve TikTok. Ancak burada da eski dönem kapandı. Sadece video paylaşarak, “takipçi kasarak” para kazanma dönemi bitti. Bugün Instagram ve TikTok’ta gerçekten kazananlar, kendini influencer olarak değil; affiliate odaklı dijital yayıncı olarak konumlandıranlar. Bu yazıda, Instagram ve TikTok’u bir vitrin olmaktan çıkarıp affiliate gelir üreten satış makinelerine nasıl dönüştürebileceğinizi adım adım ele alıyoruz.

Affiliate Inkomen uit YouTube in 2026
Sales

Affiliate Inkomen uit YouTube in 2026

YouTube artık sadece video izlenen bir platform değil. 2026 itibarıyla YouTube, dünyanın en büyük ikinci arama motoru olmasının yanında; bireysel içerik üreticiler, bağımsız yayıncılar ve affiliate odaklı dijital girişimciler için tam teşekküllü bir gelir ekosistemi hâline geldi. Ancak burada da eski dönem kapandı. “Canım ne isterse onu çekerim” dönemi bitti. Peki YouTube’dan Affiliate gelir nasıl üretilir? Bugün YouTube’dan gerçekten para kazanan kanallar, kendini yalnızca içerik üreticisi olarak değil; affiliate odaklı dijital yayıncı olarak konumlandırıyor. Bu yazıda, YouTube’u bir hobi olmaktan çıkarıp SEO + affiliate gelir makinesi hâline nasıl getirebileceğinizi adım adım ele alıyoruz.