Skonfiguruj replikację MariaDB Master / Slave w systemie Ubuntu 16.04 | 18.04

  • Noah Scott
  • 0
  • 2704
  • 823

Ze względów bezpieczeństwa i odporności na awarie, konfigurowanie replikacji typu master i slave MySQL / MariaDB jest dobrym rozwiązaniem… W konfiguracji master i slave jeden serwer bazy danych obsługuje serwer podstawowy lub główny, a drugi jako slave w tej topologii…

Zmiany wprowadzone na serwerze głównym są replikowane na serwery podrzędne… replikacja jest asynchroniczna i automatyczna…

Ta konfiguracja jest konieczna w sytuacjach, w których chcesz skalować, zapewnić kopie zapasowe na żywo w celu odzyskiwania po awarii i odporności na awarie…

Każdy element podrzędny replikacji musi mieć unikatowy plik identyfikator serwera… Jeśli konfigurujesz wielu niewolników, każdy musi mieć unikalnego identyfikator-serwera wartość, która różni się od wartości mistrza i innych niewolników.

Ten krótki samouczek pokazuje studentom i nowym użytkownikom, jak skonfigurować replikację główną i podrzędną MySQL / MariaDB w systemie Ubuntu 16.04 | 18.04 serwery… Aby rozpocząć, wykonaj poniższe czynności:

Krok 0: Przygotowanie serwera

Aby replikacja działała, potrzebujesz dwóch lub więcej serwerów… Jeden serwer będzie służył jako podstawowy, a pozostałe jako slave… W tym samouczku skonfigurujemy dwa serwery… (podstawowy i podrzędny)

Primary = 192.168.1.1 Slave = 192.168.1.2

Krok 1: Zainstaluj MariaDB na obu urządzeniach Master / Slave

Aby zainstalować MariaDB na Ubuntu, użyj poniższych poleceń… Konfiguracja działa również dla serwera MySQL… Aby zamiast tego używać MySQL, zmień nazwę serwera poniżej na mysql-server i mysql-client

Zainstaluj MariaDB na serwerze głównym i podrzędnym, uruchamiając poniższe polecenia na każdym… .

sudo apt update sudo apt-get install mariadb-server mariadb-client

Po zainstalowaniu MariaDB poniższe polecenia mogą służyć do zatrzymywania, uruchamiania i włączania usługi MariaDB, aby zawsze była uruchamiana po uruchomieniu serwera…

Uruchom je na Ubuntu 16.04 LTS

sudo systemctl stop mysql.service sudo systemctl start mysql.service sudo systemctl włącz mysql.service 

Uruchom je na Ubuntu 18.04 LTS

sudo systemctl stop mariadb.service sudo systemctl start mariadb.service sudo systemctl włącz mariadb.service 

Następnie uruchom poniższe polecenia, aby zabezpieczyć serwer MariaDB, tworząc hasło roota i blokując zdalny dostęp do roota.

sudo mysql_secure_installation

Po wyświetleniu monitu odpowiedz na poniższe pytania, postępując zgodnie z instrukcjami.

  • Wprowadź aktualne hasło roota (wpisz żadnego): Po prostu naciśnij Enter
  • Ustawić hasło roota? [T / n]: Y
  • Nowe hasło: wprowadź hasło
  • Ponownie wprowadź nowe hasło: powtórz hasło
  • Usunąć anonimowych użytkowników? [T / n]: Y
  • Nie zezwalać na zdalne logowanie przez roota? [T / n]: Y
  • Usunąć testową bazę danych i uzyskać do niej dostęp? [T / n]: Y
  • Załadować teraz ponownie tabele uprawnień? [T / n]: Y

Zrestartuj serwer MariaDB

Aby sprawdzić, czy MariaDB jest zainstalowana, wpisz poniższe polecenia, aby zalogować się do serwera MariaDB

sudo mysql -u root -p

Następnie wpisz hasło, które utworzyłeś powyżej, aby się zalogować… jeśli się powiedzie, powinna zostać wyświetlona wiadomość powitalna MariaDB

Krok 3: Skonfiguruj MariaDB Master Server

Po pierwsze, chcemy utworzyć nasz serwer główny w tej topologii… To jest serwer główny i wszystkie zmiany na tym serwerze zostaną zreplikowane na serwerach podrzędnych…

Aby skonfigurować serwer główny, otwórz poniższy plik konfiguracyjny i wprowadź zaznaczone zmiany… następnie zapisz plik i zakończ.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Zmień / dodaj podświetloną linię poniżej i zapisz…

[mysqld] # # * Ustawienia podstawowe # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = / usr datadir = / var / lib / mysql tmpdir = / tmp lc-messages-dir = / usr / share / mysql skip-external-lock # Zamiast pomijania sieci domyślnie nasłuchuje tylko na # localhost, który jest bardziej kompatybilny i nie mniej bezpieczny. log-bin adres-wiązania = 192.168.1.1 id_serwera = 1 nazwa-dziennika = master1

Po wprowadzeniu zmian zrestartuj serwer MariaDB…

sudo systemctl zrestartuj mariadb.service sudo systemctl zrestartuj mysql.service

Po skonfigurowaniu i zrestartowaniu serwera głównego zaloguj się do niego i utwórz konto użytkownika, które będzie używane do replikacji… To konto będzie miało nazwę użytkownika i hasło i będzie używane przez serwery podrzędne… .

Uruchom poniższe polecenia, aby zalogować się do serwera głównego MariaDB…

sudo mysql -u root -p

Po zalogowaniu uruchom poniższe polecenia, aby utworzyć nowe konto do replikacji… to konto będzie miało nazwę replication_user z nowym hasłem…

UTWÓRZ UŻYTKOWNIKA 'replication_user'@'192.168.1.2' IDENTIFIED BY 'new_password_here';

Następnie uruchom poniższe polecenia, aby przyznać plik replication_user pełny dostęp do serwera slave…

GRANT REPLICATION SLAVE ON *. * TO 'replication_user'@'192.168.1.2';

Następnie uruchom poniższe polecenia, aby wyświetlić szczegóły serwera głównego…

POKAŻ STATUS MASTER;

Powinien wydrukować coś podobnego do poniższej treści:

MariaDB [(brak)]> POKAŻ STATUS MASTER; + -------------------- + ---------- + -------------- + - ---------------- + | Plik | Pozycja | Binlog_Do_DB | Binlog_Ignore_DB | + -------------------- + ---------- + -------------- + - ---------------- + | master1-bin.000001 | 315 | | | + -------------------- + ---------- + -------------- + - ---------------- + 1 wiersz w zestawie (0,00 s) MariaDB [(brak)]>

Zanotuj Plik i Pozycja szczegóły serwera głównego… Będą one potrzebne podczas późniejszej konfiguracji serwera slave…

Krok 4: Skonfiguruj serwer podrzędny

Teraz, gdy serwer główny jest skonfigurowany i skonfigurowany, przełącz się na serwer podrzędny i uruchom, otwórz jego plik konfiguracyjny…

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Następnie zmień podświetlone linie w pliku i zapisz…

[mysqld] # # * Ustawienia podstawowe # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = / usr datadir = / var / lib / mysql tmpdir = / tmp lc-messages-dir = / usr / share / mysql skip-external-lock # Zamiast pomijania sieci domyślnie nasłuchuje się tylko na # localhost, który jest bardziej kompatybilny i nie mniej bezpieczny. log-bin bind-address = 192.168.1.2 server_id = 2

Zrestartuj serwer slave…

Po wprowadzeniu powyższych zmian na serwerze slave zrestartuj serwer MariaDB…

sudo systemctl zrestartuj mariadb.service sudo systemctl zrestartuj mysql.service

Kiedy skończysz, zaloguj się do serwera slave…

sudo mysql -u root -p

Chcemy skonfigurować serwer slave do komunikacji z serwerem głównym… Aby to zrobić, zatrzymaj serwer slave, uruchamiając poniższe polecenia:

STOP SLAVE;

Następnie uruchom następujące polecenia, aby skonfigurować urządzenie podrzędne do komunikacji z serwerem głównym przy użyciu konta utworzonego wcześniej dla urządzenia podrzędnego… .

ZMIEŃ MASTER NA MASTER_HOST = '192.168.1.1', MASTER_USER = 'replication_user', MASTER_PASSWORD = 'type_replication_user_password', MASTER_LOG_FILE = 'master1-bin.000001', MASTER_LOG_POS = 315;

Pamiętaj, aby użyć poprawnych informacji z góry… Po wykonaniu powyższych poleceń uruchom poniższe polecenia, aby uruchomić urządzenie podrzędne…

START SLAVE;

To powinno zakończyć konfigurację…

Przetestuj, uruchamiając poniższe polecenia SQL:

POKAŻ STATUS PODRZĘDNEGO \ G

Powinieneś zobaczyć poniższe linie:

Slave_IO_Running: Tak Slave_SQL_Running: Tak

Jeśli wszystko jest skonfigurowane poprawnie, wszelkie zmiany wprowadzone w głównym urządzeniu głównym zostaną automatycznie skopiowane do urządzenia podrzędnego…

Oto jak jedna konfiguracja replikacji synchronicznej Master / Slave przy użyciu serwera MariaDB… Powinno to również działać w przypadku korzystania z serwerów MySQL…




Jeszcze bez komentarzy

Zbiór przydatnych informacji o systemie operacyjnym Linux i nowych technologiach
Świeże artykuły, praktyczne wskazówki, szczegółowe recenzje i poradniki. Poczuj się jak w domu w świecie systemu operacyjnego Linux