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.