Android

Jak skonfigurować mysql master

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

Spisu treści:

Anonim

Replikacja MySQL to proces, który umożliwia automatyczne kopiowanie danych z jednego serwera bazy danych na jeden lub więcej serwerów.

MySQL obsługuje wiele 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.

Ten samouczek obejmuje podstawowy przykład replikacji MySQL Master / Slave z jednym serwerem master i jednym serwerem slave w systemie Ubuntu 18.04. Te same kroki dotyczą MariaDB.

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

Wymagania wstępne

W tym przykładzie założono, że masz dwa serwery z systemem Ubuntu 18.04, które mogą komunikować się ze sobą za pośrednictwem sieci prywatnej. Jeśli dostawca usług hostingowych nie oferuje 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 w tym przykładzie mają następujące adresy IP:

Master IP: 192.168.121.190 Slave IP: 192.168.121.236

Zainstaluj MySQL

Domyślne repozytoria Ubuntu 18.04 zawierają MySQL w wersji 5.7. Aby uniknąć problemów, najlepiej zainstalować tę samą wersję MySQL na obu serwerach.

Zainstaluj MySQL na serwerze głównym:

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

Zainstaluj MySQL na serwerze Slave za pomocą tych samych poleceń:

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

Skonfiguruj serwer główny

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

  • Ustaw serwer MySQL na nasłuchiwanie na prywatnym adresie IP. Ustaw unikalny identyfikator serwera. Włącz rejestrowanie binarne

Aby to zrobić, otwórz plik konfiguracyjny MySQL i usuń komentarz lub ustaw następujące opcje:

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

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

Po zakończeniu zrestartuj usługę MySQL, aby zmiany odniosły skutek:

sudo systemctl restart mysql

Następnym krokiem jest utworzenie nowego użytkownika replikacji. Zaloguj się do serwera MySQL jako użytkownik root, wpisując:

sudo mysql

Z poziomu wiersza MySQL uruchom następujące zapytania SQL, które utworzą użytkownika replica i REPLICATION SLAVE uprawnienie REPLICATION SLAVE :

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

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

Zanotuj nazwę pliku „mysql-bin.000001” i pozycję „629”. Będziesz potrzebował tych wartości podczas konfigurowania serwera podrzędnego. Te wartości prawdopodobnie będą różne na twoim serwerze.

Skonfiguruj serwer slave

Podobnie jak w przypadku powyższego serwera głównego, dokonamy następujących zmian w serwerze podrzędnym:

  • Ustaw serwer MySQL tak, aby nasłuchiwał na prywatnym IPS Ustaw unikalny serwer ID Włącz rejestrowanie binarne

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

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

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

Uruchom ponownie usługę MySQL:

sudo systemctl restart mysql

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 MySQL:

sudo mysql

Najpierw zatrzymaj wątki niewolników:

STOP SLAVE;

Uruchom następujące zapytanie, które skonfiguruje urządzenie podrzędne do replikacji urządzenia nadrzędnego:

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

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 działa zgodnie z oczekiwaniami, utworzymy 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 replikację MySQL Master / Slave.

Jeśli masz jakieś pytania, zostaw komentarz.

ubuntu mysql mariadb