Ubuntu 18.04'te MySQL Master-Slave Çoğaltma Nasıl Kurulur


MySQL ana-bağımlı çoğaltma, veritabanı dosyalarının bir ağdaki bir veya daha fazla düğümde çoğaltılmasına veya kopyalanmasına olanak tanıyan bir prosedürdür. Bu kurulum, Ana düğümde bir arıza olması durumunda veritabanlarının yine de Yardımcı düğümde kurtarılabilmesini sağlayacak şekilde yedeklilik ve hata toleransı sağlar. Bu, veritabanlarının bir kopyasının farklı bir sunucudan alınabilmesi nedeniyle, hiçbir durumda her şeyin kaybolmayacağı konusunda kullanıcılara gönül rahatlığı sağlar.

Bu kılavuzda, Ubuntu 18.04 sisteminde MySQL veritabanı Ana-bağımlı çoğaltmasının nasıl gerçekleştirileceğini öğreneceksiniz.

Önkoşullar

Kurulumda aşağıdaki IP adresleriyle Ubuntu 18.04 çalıştıran iki sunucumuz olacak.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Şimdi ayrıntılı olarak inceleyelim ve Ubuntu'da Ana-bağımlı çoğaltma kurulumunu nasıl yapılandırabileceğimizi görelim.

Adım 1: MySQL'i Ana ve Yardımcı Düğümlere yükleyin

Ubuntu depoları MySQL'in 5.7 sürümünü içerir. Yeni özelliklerden yararlanmak ve olası sorunlardan kaçınmak için MySQL'in en son sürümünü yüklemelisiniz. Ama önce aşağıdaki apt komutunu kullanarak iki düğümü güncelleyelim.

sudo apt update

Her iki düğüme de MySQL'i yüklemek için komutu yürütün.

sudo apt install mysql-server mysql-client

Daha sonra mysql yapılandırma dosyasını açın.

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Ana düğümde, aşağıda gösterildiği gibi bind-address özelliğini kaydırıp bulun.

bind-address 	 =127.0.0.1

Geridöngü adresini Ana düğümün IP adresiyle eşleşecek şekilde değiştirin.

bind-address  	=10.128.0.28

Daha sonra [mysqld] bölümünde sunucu kimliği özelliği için bir değer belirtin. Seçtiğiniz numara başka hiçbir sunucu kimliği numarasıyla eşleşmemelidir. 1 değerini atayalım.

server-id	 =1

Yapılandırma dosyasının en sonuna aşağıdaki satırları kopyalayıp yapıştırın.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Değişikliklerin Ana düğümde etkili olması için yapılandırma dosyasından çıkın ve MySQL hizmetini yeniden başlatın.

sudo systemctl restart mysql

MySQL sunucusunun beklendiği gibi çalıştığını doğrulamak için komutu verin.

sudo systemctl status mysql

Mükemmel! MySQL sunucusu beklendiği gibi çalışıyor!

Adım 2: Ana Düğümde Çoğaltma için Yeni Bir Kullanıcı Oluşturun

Bu bölümde ana düğümde bir çoğaltma kullanıcısı oluşturacağız. Bunu başarmak için gösterildiği gibi MySQL sunucusunda oturum açın.

sudo mysql -u root -p

Daha sonra, bir kopya kullanıcısı oluşturmak ve çoğaltma yardımcı birimine erişim izni vermek için aşağıdaki sorguları yürütün ve yürütün. IP adresinizi kullanmayı unutmayın.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Daha sonra aşağıdaki komutu çalıştırın.

mysql> SHOW MASTER STATUS\G

Çıktı aşağıda gördüğünüze benzer olmalıdır.

Dikkatli olun ve mysql-bin.000002 değerini ve 1643 Konum Kimliğini not edin. Bu değerler bağımlı sunucu kurulurken çok önemli olacaktır.

Adım 3: MySQL Slave Sunucusunu Yapılandırın

İkincil sunucuya gidin ve Ana sunucu'da yaptığımız gibi MySQL yapılandırma dosyasını açın.

sudo vim  /etc/mysql/mysql.conf.d/mysqld.cnf

Tıpkı ana sunucu gibi, aşağıdaki satırları düzenlemeye devam edin.

bind-address           = 10.128.0.29

Daha önce olduğu gibi, [mysqld] bölümünde sunucu kimliği özelliği için bir değer belirtin. Bu sefer farklı bir değer seçin. 2 ile devam edelim.

server-id		=2 

Yine aşağıdaki satırları konfigürasyon dosyasının en sonuna yapıştırın.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Daha sonra bağımlı düğümde MySQL sunucusunu yeniden başlatın.

sudo systemctl restart mysql

İşiniz bittiğinde kaydedin ve metin düzenleyiciden çıkın

Daha sonra gösterildiği gibi MySQL kabuğuna giriş yapın.

sudo mysql -u root -p

Bu adımda, bağımlı sunucunun ana sunucuya bağlanmasını sağlayacak bazı yapılandırmalar yapmanız gerekecektir. Ancak önce, köle iş parçacıklarını gösterildiği gibi durdurun.

mysql> STOP SLAVE; 

Bağlı sunucunun Ana sunucuyu çoğaltmasına izin vermek için komutu çalıştırın.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='Saturn@1234', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Yeterince meraklıysanız, köle çoğaltma kullanıcısını oluşturduktan sonra daha önce görüntülenen mysql-bin.00002 değerini ve 1643 konum kimliğini kullandığımızı göreceksiniz.

Ayrıca Master sunucunun IP adresi, replikasyon kullanıcısı ve şifresi kullanılmıştır.

Daha sonra, daha önce durdurduğunuz konuyu başlatın.

mysql> START SLAVE;

Adım 4: MySQL Master-Slave Çoğaltmasını Doğrulayın

Kurulumun gerçekten beklendiği gibi çalışıp çalışmadığını kontrol etmek için ana sunucuda yeni bir veritabanı oluşturacağız ve bunun MySQL Slave sunucusunda kopyalanıp kopyalanmadığını kontrol edeceğiz.

Ana sunucu'da MySQL'de oturum açın.

sudo mysql -u root -p

Bir test veritabanı oluşturalım. Bu durumda replication_db adında bir veritabanı oluşturacağız.

mysql> CREATE DATABASE replication_db;

Şimdi bağımlı sunucu'da MySQL örneğinizde oturum açın.

sudo mysql -u root -p

Şimdi sorguyu kullanarak veritabanlarını listeleyin.

mysql> SHOW DATABASES;

Ana üzerinde oluşturduğunuz veritabanının bağımlı üzerinde kopyalandığını fark edeceksiniz. Mükemmel ! MySQL Master-slave çoğaltmanız beklendiği gibi çalışıyor! Artık herhangi bir arıza durumunda veritabanı dosyalarının kopyalarının ikincil sunucuya kopyalanacağından emin olabilirsiniz.

Çözüm

Bu kılavuzda, Ubuntu 18.04'te MySQL Master-slave çoğaltma kurulumunun nasıl kurulacağını öğrendiniz.