Android

MySQL Master nasıl yapılandırılır

MariaDB HA WIth MaxScale

MariaDB HA WIth MaxScale

İçindekiler:

Anonim

MySQL çoğaltması, bir veritabanı sunucusundaki verilerin otomatik olarak bir veya daha fazla sunucuya kopyalanmasını sağlayan bir işlemdir.

MySQL bir dizi çoğaltma topolojisini destekler; Master / Slave topolojisi, bir veya daha fazla sunucunun slave olarak davrandığı sırada, bir veritabanı sunucusunun master olarak davrandığı en iyi bilinen topolojilerden biridir. Varsayılan olarak, ana verilerin ikili günlüğüne veritabanı değişikliklerini açıklayan olaylar gönderdiği ve köle hazır olduklarında olayları istediği yerlerde çoğaltma zaman uyumsuzdur.

Bu eğitici Ubuntu 18.04'te bir master ve bir slave sunucusuyla MySQL Master / Slave çoğaltmasının temel bir örneğini kapsar. Aynı adımlar MariaDB için de geçerlidir.

Bu tür çoğaltma topolojisi, okuma ölçeklendirme, olağanüstü durum kurtarma için canlı veritabanları yedekleme ve analitik işleri için okuma kopyalarının dağıtılması için en uygun yöntemdir.

Ön şartlar

Bu örnekte, Ubuntu 18.04 çalıştıran ve özel bir ağ üzerinden birbirleriyle iletişim kurabilen iki sunucunuz olduğu varsayılmaktadır. Barındırma sağlayıcınız özel IP adresleri sunmuyorsa, genel IP adreslerini kullanabilir ve güvenlik duvarınızı 3306 numaralı bağlantı noktasında yalnızca güvenilir kaynaklardan gelen trafiğe izin verecek şekilde yapılandırabilirsiniz.

Bu örnekteki sunucular aşağıdaki IP'lere sahiptir:

Master IP: 192.168.121.190 Slave IP: 192.168.121.236

MySQL'i yükleyin

Varsayılan Ubuntu 18.04 depoları MySQL sürüm 5.7'yi içerir. Herhangi bir sorunu önlemek için, her iki sunucuya da aynı MySQL sürümünü kurmak en iyisidir.

MySQL'i Ana sunucuya kurun:

sudo apt-get update sudo apt-get install mysql-server

MySQL'i Slave sunucusuna aynı komutları kullanarak kurun:

sudo apt-get update sudo apt-get install mysql-server

Ana Sunucuyu Yapılandırma

İlk adım, ana MySQL sunucusunu yapılandırmaktır. Aşağıdaki değişiklikleri yapacağız:

  • MySQL sunucusunu özel IP'de dinleyecek şekilde ayarlayın. Benzersiz bir sunucu kimliği ayarlayın. İkili günlük kaydını etkinleştirin

Bunu yapmak için MySQL yapılandırma dosyasını açın ve açıklamayın veya aşağıdakileri ayarlayın:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ana: /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 192.168.121.190 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

Tamamlandığında, değişikliklerin geçerli olması için MySQL hizmetini yeniden başlatın:

sudo systemctl restart mysql

Bir sonraki adım, yeni bir çoğaltma kullanıcısı oluşturmaktır. MySQL sunucusunda kök kullanıcı olarak aşağıdakileri yazarak oturum açın:

sudo mysql

MySQL isteminin içinden, replica kullanıcısını oluşturacak ve kullanıcıya REPLICATION SLAVE ayrıcalığını verecek aşağıdaki SQL sorgularını çalıştırın:

CREATE USER 'replica'@'192.168.121.236' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; IP'yi bağımlı IP adresinizle değiştirdiğinizden emin olun. Kullanıcıyı istediğiniz gibi adlandırabilirsiniz.

Hala MySQL isteminin içindeyken, ikili dosya adını ve konumunu yazdıracak aşağıdaki komutu yürütün.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 629 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

'Mysql-bin.000001' dosya adını ve '629' konumunu not edin. Bağımlı sunucuyu yapılandırırken bu değerlere ihtiyacınız olacaktır. Bu değerler muhtemelen sunucunuzda farklı olacaktır.

Slave Sunucusunu Yapılandırma

Yukarıdaki ana sunucuda olduğu gibi, bağımlı sunucuda aşağıdaki değişiklikleri yapacağız:

  • MySQL sunucusunu özel IPSet'i benzersiz bir sunucu kimliği dinleyecek şekilde ayarlama İkili günlük kaydını etkinleştirme

MySQL yapılandırma dosyasını açın ve aşağıdaki satırları düzenleyin:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf Köle: /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 192.168.121.236 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

MySQL hizmetini yeniden başlatın:

sudo systemctl restart mysql

Sonraki adım, bağımlı sunucunun ana sunucuya bağlanmak için kullanacağı parametreleri yapılandırmaktır. MySQL kabuğuna giriş:

sudo mysql

İlk olarak, köle dişlerini durdurun:

STOP SLAVE;

Master'ı çoğaltmak için slave'i ayarlayacak aşağıdaki sorguyu çalıştırın:

MASTER_HOST='192.168.121.190', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=629;

Doğru IP adresini, kullanıcı adını ve şifreyi kullandığınızdan emin olun. Günlük dosyası adı ve konumu, ana sunucudan aldığınız değerlerle aynı olmalıdır.

Tamamlandığında, köle dişlerini başlatın.

START SLAVE;

Yapılandırmayı Test Edin

Bu noktada, çalışan bir Master / Slave çoğaltma kurulumuna sahip olmalısınız.

Her şeyin beklendiği gibi çalıştığını doğrulamak için ana sunucuda yeni bir veritabanı oluşturacağız:

sudo mysql

CREATE DATABASE replicatest;

Slave MySQL kabuğuna giriş:

sudo mysql

Tüm veritabanlarını listelemek için aşağıdaki komutu çalıştırın:

SHOW DATABASES;

Ana sunucuda oluşturduğunuz veritabanının slave üzerinde çoğaltıldığını göreceksiniz:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

Sonuç

Bu öğreticide, bir MySQL Master / Slave çoğaltması oluşturduğunuzu gösterdik.

Herhangi bir sorunuz varsa yorum bırakmaktan çekinmeyin.

ubuntu mysql mariadb