GNU/Linux >> Znalost Linux >  >> Ubuntu

Replikace MySQL 8 Master-Slave na Ubuntu 20.04

Někdy můžeme potřebovat replikovat data z jednoho serveru MySQL DB na jeden nebo více serverů MySQL DB automaticky. Správci databází v zásadě provádějí úlohy související s databázemi, jako je replikace, shlukování a automatické přepnutí při selhání. Správa databázových serverů MySQL a provádění úloh replikace jsou odpovědností databázových expertů. V tomto článku se naučíme, jak nastavit replikaci master-slave databáze MySQL v Ubuntu 20.04. V tomto článku budeme pro replikaci používat MySQL 8.

Předpoklady

  • Dva servery ubuntu
  • Kořenový privilegovaný uživatelský účet
  • Připojení k internetu pro stahování balíčků

V tomto příkladu jsou použity následující servery.

  • Hlavní – 192.168.178.135
  • Slave – 192.168.178.137

Nainstalujte server MySQL 8 na oba uzly

Instalace MySQL je jednoduchý a přímočarý proces. V systému Ubuntu lze MySQL nainstalovat pomocí úložiště balíčků APT. Před instalací aktualizujte index balíčků Ubuntu pomocí následujícího příkazu.

Aktualizace $apt

Nainstalujte balíček serveru MySQL pomocí příkazu níže.

$apt install mysql-server -y

Čerstvá instalace serveru MySQL jej ponechá nezabezpečený. Spusťte skript „mysql_secure_installation ” pro změnu některých méně bezpečných výchozích možností, jako jsou vzdálené přihlášení root, testovací databáze, vzorové uživatele atd.

$ mysql_secure_installation

Spusťte a povolte službu MySQL

$ systemctl spustit mysql
$ systemctl povolit mysql

Konfigurace hlavního DB serveru

Nyní musíme provést nějaké změny na hlavním serveru pro replikaci. Upravte soubor mysqld.conf soubor v adresáři /etc/mysql/mysql.conf.d a přidejte následující řádky. Nezapomeňte přidat konfigurační proměnné pod [mysqld] sekce.

$ vi /etc/mysql/mysql.conf.d/mysqld.conf
[mysqld]soubor pid =/var/run/mysqld/mysqld.pidsocket =/var/run/mysqld/mysqld.sockdatadir =/var/lib/mysqllog-error =/var/log/mysql/error. logserver-id =1log-bin =/var/log/mysql/mysql-bin.logtmpdir =/tmpbinlog_format =ROWmax_binlog_size =800Msync_binlog =1expire-logs-days =5slow_query_log=1slow_query/libmyqs/slow. 

Kde:

  • server-id – Jedinečné ID serveru MySQL. Toto ID nelze znovu použít v žádném uzlu v clusteru.
  • log-bin – Toto je soubor, ve kterém jsou uloženy všechny informace o replikaci.
  • max_binlog_size – velikost souboru binlog.

Zakomentujte také adresu vazby jako:

#bind-address =127.0.0.1

Restartujte službu mysql

$systemctl restart mysql

Vytvořte nového uživatele pro službu replikace na hlavním uzlu

Nyní potřebujeme vytvořit databázového uživatele v hlavním uzlu, kterého budou používat slave při připojování. Přihlaste se do databáze pomocí uživatele root a vytvořte uživatele.

$ mysql -u root -p
$ mysql> VYTVOŘIT UŽIVATELE [chráněno e-mailem] IDENTIFIKOVANÉ PODLE '[chráněno e-mailem]';

Poznámka:Zadání IP adresy při vytváření uživatele bude akceptovat připojení MySQL pouze ze zadaného hostitele. Spojení z jiných hostitelů budou odmítnuta. V tomto příkladu jsem použil IP adresu mého podřízeného serveru MySQL. Možná budete muset odpovídajícím způsobem změnit tuto IP adresu na vaše prostředí.

Uživatel potřebuje oprávnění REPLICATION SLAVE, aby mohl replikovat data MySQL. K udělení oprávnění použijte následující dotaz.

mysql> GRANT REPLICATION SLAVE dne *.* uživateli [email protected];

Ověřte udělená oprávnění pomocí následujícího dotazu.

mysql> ZOBRAZIT GRANTY PRO [chráněno e-mailem];

Konfigurace podřízeného DB uzlu

MySQL server jsme již nainstalovali v předchozím kroku. Nyní změníme některé konfigurační soubory, abychom umožnili proces replikace. Upravte soubor mysqld.conf soubor pod /etc/mysql/mysql.conf.d adresář a přidejte následující obsah.

$vi /etc/mysql/mysql.conf.d/mysqld.conf

Obsah konfiguračního souboru:

[mysqld]log_bin =/var/log/mysql/mysql-bin.logserver-id =2read_only =1tmpdir =/tmpbinlog_format =ROWmax_binlog_size =800Msync_binlog =1expire-logs-days =5pre_logslow =2> 

Kde,

  • ID serveru – Jedinečné ID serveru MySQL.
  • pouze pro čtení – Slave uzel je nastaven do režimu pouze pro čtení
  • log_bin – Umožňuje binární protokolování v podřízeném uzlu
  • slow_query_log – Umožňuje pomalý protokol dotazů

Zakomentujte také řádek bind-address.

# bind-address =127.0.0.1

Nyní restartujte službu MySQL

$ systemctl restart mysql

Připojit podřízený server k hlavnímu serveru

Před konfigurací podřízeného serveru přejděte na hlavní server a zkontrolujte stav.

$ mysql -u root -p
mysql> ZOBRAZIT STAV MASTER\G

Poznamenejte si následující příznaky, které použijeme na podřízeném serveru.

  • Soubor:mysql-bin.000002
  • Pozice:156

Nyní nakonfigurujte parametry na podřízeném serveru, který bude použit pro připojení hlavního serveru. Postupujte podle níže uvedených kroků.

  • Přihlaste se k serveru MySQL pomocí přihlašovacích údajů root
$ mysql -u root -p
  • Zastavit vlákna Slave
mysql> STOP SLAVE;
  • Nastavte podřízený server tak, aby replikoval hlavní server
mysql> ZMĚNIT MASTER NA MASTER_HOST='192.168.178.137', MASTER_USER='replication_user', MASTER_PASSWORD='[e-mail chráněný]', MASTER_LOG_FILE='mysql-bin.000003',
003', 100003 MASTER_5

Kde,

  • 192.168.178.137 – IP adresa hlavního serveru
  • replication_user – Uživatel MySQL hlavního serveru
  • heslo – Uživatelské heslo replikace
  • mysql-bin.000002 – Soubor protokolu hlavního serveru
  • 156 – Zaznamenat pozici hlavního serveru

Nyní aktivujte podřízený server.

mysql> START SLAVE;

Ověřte stav slave pomocí následujícího dotazu

mysql> ZOBRAZIT STAV SLAVE\G

Všimněte si stavu následujícího příznaku.

  • Slave_IO_Running:Připojování
  • Slave_IO_Running:Připojování

Ověřte replikaci master-slave

Master a slave jsou nakonfigurovány pro replikaci. Můžeme ověřit, zda replikace master-slave funguje nebo ne. Na hlavním serveru se přihlaste do prostředí MySQL a vytvořte testovací databázi.

$ mysql -u root -p
mysql> CREATE DATABASE example_db;

Ověřte vytvořenou databázi.

mysql> ZOBRAZIT DATABÁZE;

Nyní se přihlaste k podřízenému serveru

$ mysql -u root -p

Spuštěním následujícího dotazu zobrazíte seznam databází.

mysql> ZOBRAZIT DATABÁZE;

Můžete vidět, že databáze vytvořená na hlavním serveru je replikována na podřízený server.

Závěr

V tomto článku jsme se naučili, jak nastavit hlavní a podřízený uzel MySQL na Ubuntu 20.04. Podle tohoto článku můžete také nastavit replikaci MySQL master-slave na Ubunutu 18.04.


Ubuntu
  1. Jak nainstalovat MySQL 8.0 v Ubuntu 18.04

  2. Jak nainstalovat MySQL na Ubuntu 20.04

  3. Instalace Ubuntu 22.04 LAMP

  1. Jak nainstalovat MySQL na Ubuntu 18.04

  2. Jak nakonfigurovat replikaci MySQL Master-Slave na Ubuntu 18.04

  3. Jak nakonfigurovat replikaci MySQL Master-Slave na CentOS 7

  1. Jak nakonfigurovat replikaci MySQL (MariaDB) Master-Slave na Debianu 10

  2. Jak nastavit replikaci Master-Slave pro PostgreSQL 9.6 na Ubuntu 16.04

  3. Jak nastavit replikaci Cassandra na Ubuntu 16.04