How To Configure MySQL Master-Slave Replication on Ubuntu 18.04
Spisu treści:
- Wymagania wstępne
- Zainstaluj MySQL
- Skonfiguruj serwer główny
- Skonfiguruj serwer slave
- Przetestuj konfigurację
- Wniosek
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.
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 mariadbJak skonfigurować, skonfigurować, używać Kontroli rodzicielskiej w Windows 7
Dowiedz się, jak włączyć, wyłączyć, skonfigurować i używać funkcji Kontroli rodzicielskiej w systemie Windows 7 do monitorowania i kontrolowania aktywności internetowych dzieci.
Jak skonfigurować mysql master
Replikacja MySQL to proces, który umożliwia automatyczne kopiowanie danych z jednego serwera bazy danych na jeden lub więcej serwerów. W tym samouczku wyjaśnimy, jak skonfigurować replikację MySQL Master / Slave z jednym serwerem master i jednym serwerem slave w CentOS 7.
Jak skonfigurować master mysql (mariadb)
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.







