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
