Android

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

Установка и настройка CentOS в VirtualBox

Установка и настройка CentOS в VirtualBox

İçindekiler:

Anonim

MySQL çoğaltma, verileri bir veritabanı sunucusundan bir veya daha fazla sunucuya otomatik olarak kopyalamanızı 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 derste, CentOS 7'de bir master ve bir slave sunucu ile bir MySQL Master / Slave çoğaltmasının nasıl kurulacağını açıklayacağız. MariaDB için aynı adımlar 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, CentOS 7 çalıştıran ve birbirinizle özel bir ağ üzerinden iletişim kurabilen iki sunucunuz olduğunu varsayıyoruz. Barındırma sağlayıcınız özel IP adresleri sağlamazsa, 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.59 Slave IP: 192.168.121.14

MySQL'i yükleyin

Varsayılan CentOS 7 depoları MySQL paketlerini içermez, bu nedenle MySQL'i resmi Yum Depolarından kuracağız. Herhangi bir sorunu önlemek için, her iki sunucuya da aynı MySQL 5.7 sürümünü kuracağız.

MySQL'i hem Master hem de Slave sunuculara kurun:

sudo yum localinstall sudo yum install mysql-community-server

Yükleme tamamlandığında, MySQL hizmetini başlatın ve önyüklemede otomatik olarak aşağıdakileri başlatmasını sağlayın:

sudo systemctl enable mysqld sudo systemctl start mysqld

MySQL sunucusu ilk kez başlatıldığında, MySQL kök kullanıcısı için geçici bir şifre oluşturulur. Parolayı bulmak için aşağıdaki grep komutunu kullanın:

sudo grep 'temporary password' /var/log/mysqld.log

Yeni kök parolanızı ayarlamak ve MySQL örneğinin güvenliğini artırmak için mysql_secure_installation komutunu çalıştırın:

mysql_secure_installation

Geçici kök parolasını girin ve tüm sorulara Y (evet) yanıtını verin.

Yeni parola en az 8 karakter uzunluğunda olmalı ve en az bir büyük harf, bir küçük harf, bir sayı ve bir özel karakter içermelidir.

Ana Sunucuyu Yapılandırma

İlk olarak, ana MySQL sunucusunu yapılandıracağız ve 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şağıdaki satırları Bölüm:

sudo nano /etc/my.cnf ana: /etc/my.cnf

bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin

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

sudo systemctl restart mysqld

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

mysql -uroot -p

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.14' IDENTIFIED BY 'strong_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14'; 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: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

'Mysql-bin.000001' dosya adını ve '1427' 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/my.cnf Köle: /etc/my.cnf

bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin

MySQL hizmetini yeniden başlatın:

sudo systemctl restart mysqld

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

mysql -uroot -p

İ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.59', MASTER_USER='replica', MASTER_PASSWORD='strong_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1427;

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:

mysql -uroot -p

CREATE DATABASE replicatest;

Slave MySQL kabuğuna giriş:

mysql -uroot -p

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 eğitimde, CentOS 7'de bir MySQL Master / Slave çoğaltması oluşturduğunuzu gösterdik.

Herhangi bir sorunuz varsa yorum bırakmaktan çekinmeyin.

centos mysql mariadb