How to Configure MySQL Database Replication with Master and Slave on CentOS
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.
W tym samouczku wyjaśnimy, jak skonfigurować replikację Master / Slave MySQL z jednym serwerem master i jednym serwerem slave w CentOS 7. 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 zakładamy, że masz dwa serwery z systemem CentOS 7, które mogą komunikować się ze sobą za pośrednictwem sieci prywatnej. Jeśli dostawca usług hostingowych nie udostępnia 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.59 Slave IP: 192.168.121.14
Zainstaluj MySQL
Domyślne repozytoria CentOS 7 nie zawierają pakietów MySQL, dlatego MySQL zostanie zainstalowany z ich oficjalnego repozytorium Yum. Aby uniknąć problemów, zainstalujemy tę samą wersję MySQL 5.7 na obu serwerach.
Zainstaluj MySQL na serwerach Master i Slave:
sudo yum localinstall
sudo yum install mysql-community-server
Po zakończeniu instalacji uruchom usługę MySQL i włącz automatyczne uruchamianie przy starcie:
sudo systemctl enable mysqld
sudo systemctl start mysqld
Gdy serwer MySQL uruchamia się po raz pierwszy, dla użytkownika root MySQL generowane jest tymczasowe hasło. Aby znaleźć hasło, użyj następującego polecenia grep:
sudo grep 'temporary password' /var/log/mysqld.log
Uruchom komendę
mysql_secure_installation
aby ustawić nowe hasło roota i poprawić bezpieczeństwo instancji MySQL:
mysql_secure_installation
Wprowadź tymczasowe hasło roota i odpowiedz
Y
(tak) na wszystkie pytania.
Skonfiguruj serwer główny
Najpierw skonfigurujemy główny serwer MySQL i wprowadzimy następujące zmiany:
- Ustaw serwer MySQL tak, aby nasłuchiwał na prywatnym IP. Ustaw unikalny identyfikator serwera. Włącz rejestrowanie binarne.
W tym celu otwórz plik konfiguracyjny MySQL i dodaj następujące wiersze w
Sekcja:
sudo nano /etc/my.cnf
master: /etc/my.cnf
bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin
Po zakończeniu zrestartuj usługę MySQL, aby zmiany odniosły skutek
sudo systemctl restart mysqld
Następnym krokiem jest utworzenie nowego użytkownika replikacji. Zaloguj się do serwera MySQL jako użytkownik root:
mysql -uroot -p
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.14' IDENTIFIED BY 'strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14';
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: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)
Zanotuj nazwę pliku „mysql-bin.000001” i pozycję „1427”. 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/my.cnf
slave: /etc/my.cnf
bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin
Uruchom ponownie usługę MySQL:
sudo systemctl restart mysqld
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:
mysql -uroot -p
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.59',
MASTER_USER='replica',
MASTER_PASSWORD='strong_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1427;
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:
mysql -uroot -p
CREATE DATABASE replicatest;
Zaloguj się do podrzędnej powłoki MySQL:
mysql -uroot -p
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 na CentOS 7.
Jeśli masz jakieś pytania, zostaw komentarz.
centos 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ć 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.
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.







