How to Configure MySQL Master-Slave Replication on Ubuntu Linux
Spisu treści:
- Wymagania wstępne
- Instalowanie MariaDB
- Konfigurowanie serwera głównego
- Konfigurowanie serwera slave
- Przetestuj konfigurację
- Wniosek
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.
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 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ć 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. Ten samouczek obejmuje podstawowy przykład replikacji MySQL Master / Slave z jednym serwerem master i jednym serwerem slave w systemie Ubuntu 18.04.







