GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nakonfigurovat replikaci MySQL Master-Slave na CentOS 7

Replikace MySQL je proces, který vám umožňuje automaticky kopírovat data z jednoho databázového serveru na jeden nebo více serverů.

MySQL podporuje řadu replikačních topologií, přičemž topologie Master/Slave je jednou z nejznámějších topologií, ve které jeden databázový server vystupuje jako hlavní, zatímco jeden nebo více serverů funguje jako podřízené. Ve výchozím nastavení je replikace asynchronní, kdy hlavní server odesílá události, které popisují úpravy databáze, do svého binárního protokolu a podřízené jednotky požadují události, když jsou připraveny.

V tomto tutoriálu vysvětlíme, jak nastavit replikaci MySQL Master/Slave s jedním hlavním a jedním podřízeným serverem na CentOS 7. Stejné kroky platí pro MariaDB.

Tento typ replikační topologie se nejlépe hodí pro nasazení čtených replik pro škálování čtení, zálohování živých databází pro obnovu po havárii a pro analytické úlohy.

Předpoklady #

V tomto příkladu předpokládáme, že máte dva servery se systémem CentOS 7, které spolu mohou komunikovat přes privátní síť. Pokud váš poskytovatel hostingu neposkytuje soukromé IP adresy, můžete použít veřejné IP adresy a nakonfigurovat firewall tak, aby umožňoval provoz na portu 3306 pouze z důvěryhodných zdrojů.

Servery v tomto příkladu mají následující IP adresy:

Master IP: 192.168.121.59
Slave IP:  192.168.121.14

Instalovat MySQL #

Výchozí úložiště CentOS 7 nezahrnuje balíčky MySQL, takže nainstalujeme MySQL z jejich oficiálního úložiště Yum. Abychom se vyhnuli problémům, nainstalujeme na oba servery stejnou verzi MySQL 5.7.

Nainstalujte MySQL na hlavní i podřízený server:

sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmsudo yum install mysql-community-server

Po dokončení instalace spusťte službu MySQL a povolte, aby se automaticky spouštěla ​​při spouštění pomocí:

sudo systemctl enable mysqldsudo systemctl start mysqld

Při prvním spuštění serveru MySQL se pro uživatele root MySQL vygeneruje dočasné heslo. Chcete-li zjistit heslo, použijte následující příkaz grep:

sudo grep 'temporary password' /var/log/mysqld.log

Spusťte mysql_secure_installation příkaz pro nastavení vašeho nového root hesla a zlepšení zabezpečení instance MySQL:

mysql_secure_installation

Zadejte dočasné heslo uživatele root a odpovězte Y (ano) na všechny otázky.

Nové heslo musí mít alespoň 8 znaků a musí obsahovat alespoň jedno velké písmeno, jedno malé písmeno, jedno číslo a jeden speciální znak.

Nakonfigurujte hlavní server #

Nejprve nakonfigurujeme hlavní server MySQL a provedeme následující změny:

  • Nastavte server MySQL tak, aby naslouchal na soukromé IP.
  • Nastavte jedinečné ID serveru.
  • Povolte binární protokolování.

Chcete-li tak učinit, otevřete konfigurační soubor MySQL a přidejte následující řádky do [mysqld] sekce:

sudo nano /etc/my.cnf
master:/etc/my.cnf
bind-address           = 192.168.121.59
server-id              = 1
log_bin                = mysql-bin

Po dokončení restartujte službu MySQL, aby se změny projevily

sudo systemctl restart mysqld

Dalším krokem je vytvoření nového uživatele replikace. Přihlaste se k serveru MySQL jako uživatel root:

mysql -uroot -p

Z příkazového řádku MySQL spusťte následující SQL dotazy, které vytvoří replica a udělte REPLICATION SLAVE oprávnění pro uživatele:

CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14';
Ujistěte se, že jste změnili IP s vaší podřízenou IP adresou. Uživatele můžete pojmenovat, jak chcete.

Zatímco jste stále uvnitř výzvy MySQL, spusťte následující příkaz, který vytiskne binární název souboru a pozici.

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)

Poznamenejte si název souboru 'mysql-bin.000001' a pozice ‘1427‘ . Tyto hodnoty budete potřebovat při konfiguraci podřízeného serveru. Tyto hodnoty se pravděpodobně na vašem serveru budou lišit.

Konfigurace podřízeného serveru #

Stejně jako u hlavního serveru výše provedeme na podřízeném serveru následující změny:

  • Nastavte server MySQL tak, aby naslouchal na soukromé IP adrese
  • Nastavte jedinečné ID serveru
  • Povolte binární protokolování

Otevřete konfigurační soubor MySQL a upravte následující řádky:

sudo nano /etc/my.cnf
slave:/etc/my.cnf
bind-address           = 192.168.121.14
server-id              = 2
log_bin                = mysql-bin

Restartujte službu MySQL:

sudo systemctl restart mysqld

Dalším krokem je konfigurace parametrů, které bude podřízený server používat pro připojení k hlavnímu serveru. Přihlaste se do prostředí MySQL:

mysql -uroot -p

Nejprve zastavte podřízená vlákna:

STOP SLAVE;

Spusťte následující dotaz, který nastaví podřízenou jednotku tak, aby replikovala hlavní:

CHANGE MASTER TOMASTER_HOST='192.168.121.59',MASTER_USER='replica',MASTER_PASSWORD='strong_password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1427;

Ujistěte se, že používáte správnou IP adresu, uživatelské jméno a heslo. Název a pozice log souboru musí být stejné jako hodnoty, které jste získali z hlavního serveru.

Po dokončení spusťte podřízená vlákna.

START SLAVE;

Otestujte konfiguraci #

V tomto okamžiku byste měli mít funkční nastavení replikace Master/Slave.

Abychom ověřili, že vše funguje podle očekávání, vytvoříme novou databázi na hlavním serveru:

mysql -uroot -p
CREATE DATABASE replicatest;

Přihlaste se k podřízenému prostředí MySQL:

mysql -uroot -p

Spuštěním následujícího příkazu zobrazíte všechny databáze:

SHOW DATABASES;

Všimnete si, že databáze, kterou jste vytvořili na hlavním serveru, je replikována na podřízeném:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| replicatest        |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Cent OS
  1. Jak nastavit nastavení MySQL Master-Slave pomocí uzlů CentOS 7?

  2. Jak nakonfigurovat OpenSSH na CentOS 7

  3. Jak nainstalovat MySQL 5.6 na CentOS 6.x

  1. Jak nainstalovat MySQL na CentOS 7

  2. Jak nainstalovat MySQL na CentOS 8

  3. Jak nastavit replikaci MySQL na CentOS

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

  2. Jak nainstalovat a nakonfigurovat Zabbix na CentOS 7

  3. Jak nainstalovat MySQL na CentOS 8