Android

Jak skonfigurować master mysql (mariadb)

How to Configure MySQL Master-Slave Replication on Ubuntu Linux

How to Configure MySQL Master-Slave Replication on Ubuntu Linux

Spisu treści:

Anonim

Replikacja MySQL to proces kopiowania danych z jednego serwera bazy danych (master) na jeden lub więcej serwerów (slave).

MySQL obsługuje kilka topologii replikacji, przy czym topologia Master / Slave jest jedną z najbardziej znanych topologii, w których jeden serwer bazy danych działa jako master, podczas gdy jeden lub więcej serwerów działa jako slave. Domyślnie replikacja jest asynchroniczna, gdy master wysyła zdarzenia opisujące modyfikacje bazy danych do swojego dziennika binarnego, a urządzenia slave żądają zdarzeń, gdy są gotowe.

W tym przewodniku pokażemy, jak skonfigurować replikację Master / Slave MariaDB z jednym serwerem master i jednym serwerem slave w Debianie 10. MariaDB jest domyślną implementacją MySQL w Debianie. Te same kroki dotyczą Oracle MySQL.

Ten typ topologii replikacji najlepiej nadaje się do wdrażania replik odczytu do skalowania odczytu, tworzenia kopii zapasowych baz danych na żywo w celu odzyskiwania po awarii i zadań analitycznych.

Wymagania wstępne

Zakładamy, że masz dwa serwery z systemem Debian 10, komunikujące się ze sobą za pośrednictwem sieci prywatnej. Jeśli Twój dostawca hostingu nie obsługuje prywatnych adresów IP, możesz użyć publicznych adresów IP i skonfigurować zaporę ogniową tak, aby zezwalała na ruch na porcie 3306 tylko z zaufanych źródeł.

Serwery użyte w tym przykładzie mają następujące adresy IP:

Master IP: 10.10.8.12 Slave IP: 10.10.8.164

Instalowanie MariaDB

Domyślne repozytoria Debian 10 zawierają MariaDB w wersji 10.3. Najlepiej zainstalować tę samą wersję MariaDB na obu serwerach, aby uniknąć potencjalnych problemów.

Zainstaluj MariaDB zarówno na urządzeniu głównym, jak i podrzędnym, wydając następujące polecenia:

sudo apt-get update sudo apt-get install mariadb-server

Konfigurowanie serwera głównego

Pierwszym krokiem jest skonfigurowanie serwera głównego. Wprowadzimy następujące zmiany:

  • Ustaw serwer MariaDB tak, aby nasłuchiwał na prywatnym adresie IP. Ustaw unikalny identyfikator serwera. Włącz rejestrowanie binarne.

Otwórz plik konfiguracyjny MariaDB i usuń komentarz lub ustaw następujące linie:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf master: /etc/mysql/mariadb.conf.d/50-server.cnf

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

Po zakończeniu zapisz plik i uruchom ponownie usługę MySQL, aby zmiany odniosły skutek:

sudo systemctl restart mariadb

Następnym krokiem jest utworzenie nowego użytkownika replikacji. Zaloguj się do serwera MariaDB jako użytkownik root:

sudo mysql

Uruchom następujące zapytania SQL, aby utworzyć replica nazwie użytkownika i przyznać użytkownikowi uprawnienie REPLICATION SLAVE :

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

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164'; Upewnij się, że zmieniłeś adres IP swoim niewolniczym adresem IP. Możesz nazwać użytkownika tak, jak chcesz.

Pozostając w wierszu polecenia MySQL, wykonaj następujące polecenie, aby wydrukować binarną nazwę pliku i pozycję.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)

Zanotuj nazwę pliku „mysql-bin.000001” i pozycję „328”. Te wartości są niezbędne podczas konfigurowania serwera podrzędnego i prawdopodobnie będą inne na twoim serwerze.

Konfigurowanie serwera slave

Dokonamy takich samych zmian na serwerze podrzędnym, jak na serwerze głównym:

  • Ustaw serwer MySQL tak, aby nasłuchiwał na prywatnym IP. Ustaw unikalny identyfikator serwera. Włącz rejestrowanie binarne.

Otwórz plik konfiguracyjny MariaDB i edytuj następujące linie:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf slave: /etc/mysql/mariadb.conf.d/50-server.cnf

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

Uruchom ponownie usługę MariaDB:

sudo systemctl restart mariadb

Następnym krokiem jest skonfigurowanie parametrów, które będą używane przez serwer podrzędny do łączenia się z serwerem głównym. Zaloguj się do powłoki MariaDB:

sudo mysql

Zacznij od zatrzymania wątków slave:

STOP SLAVE;

Uruchom następujące zapytanie, aby skonfigurować replikację Master / Slave:

CHANGE MASTER TO MASTER_HOST='10.10.8.12', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

Upewnij się, że używasz prawidłowego adresu IP, nazwy użytkownika i hasła. Nazwa i pozycja pliku dziennika muszą być takie same, jak wartości uzyskane z serwera głównego.

Po zakończeniu rozpocznij wątki slave.

START SLAVE;

Przetestuj konfigurację

W tym momencie powinieneś mieć działającą konfigurację replikacji Master / Slave.

Aby sprawdzić, czy wszystko jest poprawnie skonfigurowane, utwórz nową bazę danych na serwerze głównym:

sudo mysql

CREATE DATABASE replicatest;

Zaloguj się do podrzędnej powłoki MySQL:

sudo mysql

Uruchom następujące polecenie, aby wyświetlić listę wszystkich baz danych:

SHOW DATABASES;

Zauważysz, że baza danych utworzona na serwerze głównym jest replikowana na urządzeniu podrzędnym:

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

Wniosek

W tym samouczku pokazaliśmy, że tworzysz replikę Master / Slave MariaDB na Debianie 10.

Jeśli masz jakieś pytania, zostaw komentarz.

debian mysql mariadb