MySQL Replication Nasıl Yapılır?

MySQL Replication, veritabanı yöneticilerinin veri bütünlüğünü korumak, yedekleme süreçlerini optimize etmek ve yüksek erişilebilirlik sağlamak için kullanılan etkili bir yöntemdir. Bu çözüm, birincil (master) veritabanındaki değişikliklerin otomatik olarak diğer bir veya daha fazla ikincil (slave) veritabanına kopyalanmasına dayanır.

İlk adım olarak MySQL’i kurmakla başlıyoruz. Aşağıdaki komutları kullanarak kurulumu gerçekleştirebilirsiniz:

apt install mysql-server -y

mysql_secure_installation

systemctl start mysql
systemctl enable mysql


MySQL kurulumu sonrası kullanıcı oluşturmamız gerekmektedir. Aşağıdaki komutları izleyerek kurulumu sağlayabiliriz.

mysql 
create user 'replication_user'@'%' identified by 'Password',
grant all privileges on *.* to 'replication_user'@'%';
flush privileges 

Bu işlemleri master ve slave sunucu üzerinde yapıyoruz.

Bu işlemler sonrasında mysqld conflarının düzenlemesini yapmamız gerekiyor.

MASTER MYSQL CONFİG
nano /etc/mysql/mysql.conf.d/mysqld.cnf

/etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
innodb_flush_log_at_trx_commit=1
sync_binlog=1

SLAVE MYSQL CONFİG

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

bind-address = 0.0.0.0
server-id = 2
log-bin = /var/log/mysql/mysql-bin.log
report_host = mysql-replica
read_only=1
systemctl restart mysql.service

Master server üzerinde mysql login olup aşağıdaki komut ile File ve Position not alıyoruz

SHOW MASTER STATUS;

File ve Position kısımlarını not aldıktan sonra Slave sunucu üzerinden aşağıdaki komutu düzenleyerek mysql slave üzerinde aşağıdaki komutları çalıştırarak

SLAVE

CHANGE MASTER TO MASTER_HOST='10.100.10.100',
MASTER_USER='replication_user',
MASTER_PASSWORD='Password',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=157;

START SLAVE;
SHOW SLAVE STATUS \G