MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak skonfigurować replikację MySQL Master-Slave na Ubuntu 18.04

MySQL Replikacja typu master-slave to procedura, która umożliwia replikację lub kopiowanie plików bazy danych w jednym lub większej liczbie węzłów w sieci. Ta konfiguracja zapewnia nadmiarowość i odporność na awarie, dzięki czemu w przypadku awarii węzła głównego , bazy danych można nadal odzyskać w węźle Slave . Daje to użytkownikom pewność, że w żadnym wypadku nie wszystko zostanie utracone, ponieważ replika baz danych nadal może być pobrana z innego serwera.

W tym przewodniku dowiesz się, jak wykonać MySQL baza danych Master-slave replikacja na Ubuntu 18.04 system.

Wymagania wstępne

W konfiguracji będziemy mieć dwa serwery z systemem Ubuntu 18.04 z następującymi adresami IP.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Zanurzmy się teraz i zobaczmy, jak możemy skonfigurować Master-slave konfiguracja replikacji na Ubuntu .

Krok 1:Zainstaluj MySQL na węzłach Master i Slave

Ubuntu repozytoria zawierają wersję 5.7 MySQL . Aby skorzystać z nowych funkcji i uniknąć potencjalnych problemów, należy zainstalować najnowszą wersję MySQL. Ale najpierw zaktualizujmy dwa węzły za pomocą następującego polecenia apt.

$ sudo apt update

Aby zainstalować MySQL na obu węzłach wykonaj polecenie.

$ sudo apt install mysql-server mysql-client

Następnie otwórz mysql plik konfiguracyjny.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

W węźle głównym , przewiń i znajdź bind-address atrybut, jak pokazano poniżej.

bind-address 	 =127.0.0.1

Zmień adres pętli zwrotnej, aby pasował do adresu IP węzła głównego .

bind-address  	=10.128.0.28

Następnie określ wartość dla server-id atrybut w [mysqld] Sekcja. Wybrany numer nie powinien odpowiadać żadnemu innemu numerowi identyfikatora serwera. Przypiszmy wartość 1 .

server-id	 =1

Na samym końcu pliku konfiguracyjnego skopiuj i wklej poniższe linie.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Wyjdź z pliku konfiguracyjnego i uruchom ponownie usługę MySQL, aby zmiany odniosły skutek w węźle głównym.

$ sudo systemctl restart mysql

Aby sprawdzić, czy serwer MySQL działa zgodnie z oczekiwaniami, wydaj polecenie.

$ sudo systemctl status mysql

Idealny! Serwer MySQL działa zgodnie z oczekiwaniami!

Krok 2:Utwórz nowego użytkownika do replikacji w węźle głównym

W tej sekcji utworzymy użytkownika replikacji w węźle głównym . Aby to osiągnąć, zaloguj się do serwera MySQL, jak pokazano.

$ sudo mysql -u root -p

Następnie kontynuuj i wykonaj poniższe zapytania, aby utworzyć użytkownika repliki i przyznać dostęp do urządzenia podrzędnego replikacji. Pamiętaj, aby użyć swojego adresu IP.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Następnie uruchom następujące polecenie.

mysql> SHOW MASTER STATUS\G

Wynik powinien być podobny do tego, który widać poniżej.

Bądź czujny i zwróć uwagę na mysql-bin.000002 wartość i identyfikator pozycji 1643 . Te wartości będą kluczowe podczas konfigurowania serwera podrzędnego .

Krok 3:Skonfiguruj serwer MySQL Slave

Udaj się na serwer podrzędny i tak jak zrobiliśmy to z serwerem głównym , otwórz plik konfiguracyjny MySQL.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Podobnie jak serwer główny , przejdź do edycji następujących wierszy.

bind-address           = 10.128.0.29

Tak jak poprzednio, określ wartość dla server-id atrybut w [mysqld] Sekcja. Tym razem wybierz inną wartość. Chodźmy z 2 .

server-id		=2 

Ponownie wklej poniższe linie na samym końcu pliku konfiguracyjnego.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Następnie uruchom ponownie serwer MySQL na węźle podrzędnym.

$ sudo systemctl restart mysql

Po zakończeniu zapisz i wyjdź z edytora tekstu

Następnie zaloguj się do powłoki MySQL, jak pokazano.

$ sudo mysql -u root -p

W tym kroku będziesz musiał dokonać konfiguracji, która pozwoli serwerowi podrzędnemu połączyć się z serwerem głównym . Ale najpierw zatrzymaj wątki podrzędne, jak pokazano.

mysql> STOP SLAVE; 

Aby zezwolić serwerowi podrzędnemu do replikowania serwera głównego , uruchom polecenie.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Jeśli jesteś wystarczająco chętny, zauważysz, że użyliśmy mysql-bin.00002 ID wartości i pozycji 1643 wcześniej wyświetlane po utworzeniu użytkownika replikacji podrzędnej.

Dodatkowo użyto adresu IP serwera głównego, użytkownika replikacji i hasła.

Później uruchom wątek, który wcześniej przerwałeś.

mysql> START SLAVE;

Krok 4:Sprawdź replikację MySQL Master-Slave

Aby sprawdzić, czy konfiguracja rzeczywiście działa zgodnie z oczekiwaniami, utworzymy nową bazę danych na urządzeniu głównym i sprawdzimy, czy została zreplikowana na serwerze MySQL Slave.

Zaloguj się do MySQL na serwerze głównym .

$ sudo mysql -u root -p

Stwórzmy testową bazę danych. W takim przypadku utworzymy bazę danych o nazwie replication_db .

mysql> CREATE DATABASE replication_db;

Teraz zaloguj się do swojej instancji MySQL na serwerze podrzędnym .

$ sudo mysql -u root -p

Teraz wypisz bazy danych za pomocą zapytania.

mysql> SHOW DATABASES;

Zauważysz bazę danych, którą utworzyłeś na master został zreplikowany na slave . Niesamowite ! Twoja replikacja MySQL Master-slave działa zgodnie z oczekiwaniami! Możesz teraz mieć pewność, że w przypadku jakiejkolwiek awarii kopie plików bazy danych zostaną zreplikowane na serwer podrzędny.

Wniosek

Z tego przewodnika dowiedziałeś się, jak skonfigurować MySQL Master-slave konfiguracja replikacji na Ubuntu 18.04 .


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB C# Driver - Ignoruj ​​pola podczas wiązania

  2. Dodawanie/odejmowanie dni do ISODate w powłoce MongoDB

  3. Jak zastosować ograniczenia w MongoDB?

  4. Kroki instalacji MongoDB na Amazon Linux

  5. MongoDB:Czy można wykonać zapytanie bez uwzględniania wielkości liter?