V tomto článku ukážu, jak nastavit replikaci MySQL mezi hlavními a podřízenými databázovými servery. To bude používat dva servery, z nichž jeden bude replikovat data z druhého (Master to Slave). Toto nastavení použijte, pokud chcete zvýšit spolehlivost a výkon konfigurace vašeho systému.
Pokud potřebujete pomoc s nastavením systému založeného na RHEL, nahlédněte do některého z našich dalších výukových programů.
V této příručce budeme používat toto nastavení laboratoře replikace MySQL.
MySQL Master - 192.168.56.1
MySQL Slave - 192.168.56.2
Krok 1:Instalace MySQL na hlavní a podřízený server
Začněte instalací databáze MySQL na hlavní i podřízený server.
$ sudo dnf install @mysql
or
$ sudo yum install mysql-server

Po dokončení instalace spusťte službu databáze.
$ sudo systemctl start mysqld
Poté povolte, aby se spustil s systemctl. Povolením sdělíte službě, aby se spustila ve spouštěcí sekvenci.
$ sudo systemctl enable mysqld
Poté potvrďte, že databázový server MySQL běží:
$ sudo systemctl status mysqld

Krok 2:Zabezpečení MySQL na hlavním a podřízeném serveru
Nový databázový server se doporučuje zabezpečit následujícím příkazem:
$ sudo mysql_secure_installation
Chcete-li začít, budete muset nastavit kořenové heslo MySQL. Ujistěte se, že používáte silné heslo root, nejlépe takové, které obsahuje kombinaci velkých, malých písmen, speciálních a číselných znaků a je delší než 8 znaků.
U zbývajících výzev zadejte „Y“, abyste nakonfigurovali databázový server na doporučená nastavení.
Jakmile dokončíte instalaci a posílení MySQL na hlavním a podřízeném uzlu, dalším krokem je konfigurace hlavního uzlu.
Krok 3:Konfigurace hlavního uzlu (serveru)
Nyní nakonfigurujeme hlavní uzel a udělíme přístup podřízenému uzlu. Nejprve musíme upravit konfigurační soubor mysql-server.cnf.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Přidejte následující řádky do sekce [mysqld].
bind-address = 192.168.56.1
server-id = 1
log_bin = mysql-bin
Po dokončení uložte změny a ukončete. Poté restartujte server MySQL.
$ sudo sysemctl restart mysqld
Dále se přihlaste do prostředí MySQL.
$ sudo mysql -u root -p
Provedením následujících příkazů vytvořte databázového uživatele, který bude použit k propojení hlavního a podřízeného zařízení pro replikaci.
mysql> CREATE USER 'replica'@'192.168.56.2' IDENTIFIED BY 'Password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'192.168.56.2';
Použijte změny a ukončete server MySQL.
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
Ověřte stav hlavního serveru.
mysql> SHOW MASTER STATUS\G

Poznamenejte si název souboru a pozici. Budete to potřebovat později při nastavování slave zařízení pro replikaci. V našem případě máme název souboru binlog.000001 a pozici 854.
Krok 4:Nakonfigurujte podřízený uzel (server)
Nyní se vraťte do Slave uzlu. Ještě jednou upravte konfigurační soubor mysql-server.cnf.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Stejně jako dříve vložte tyto řádky do sekce [mysqld]. Změňte IP adresu tak, aby odpovídala IP podřízeného zařízení. Také přiřaďte jiné ID serveru. Zde jsme mu přiřadili hodnotu 2.
bind-address = 192.168.56.2
server-id = 2
log_bin = mysql-bin
Uložte změny a ukončete soubor. Poté restartujte databázový server.
$ sudo systemctl restart mysqld
Chcete-li nakonfigurovat uzel Slave tak, aby se replikoval z uzlu Master, přihlaste se k serveru MySQL Slave.
$ sudo mysql -u root -p
Začněte zastavením vláken replikace:
mysql> STOP SLAVE;
Poté proveďte následující příkaz pro konfiguraci podřízeného uzlu pro replikaci databází z hlavního uzlu.
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.56.1' ,
MASTER_USER='replica' ,
MASTER_PASSWORD='Password' ,
MASTER_LOG_FILE='binlog.000001' ,
MASTER_LOG_POS=854;
Příznaky MASTER LOG FILE a MASTER LOG POS odpovídají hodnotám souboru a pozice z hlavního uzlu na konci kroku 1.
MASTER HOST, MASTER USER a MASTER PASSWORD jsou hlavní IP adresa, uživatel replikace a heslo.
Potom by měla být spuštěna podřízená replikační vlákna:
mysql> START SLAVE;
Krok 4:Testování replikace MySQL Master-Slave
Chcete-li nyní otestovat, zda replikace mezi hlavním a podřízeným uzlem funguje, přihlaste se k databázovému serveru MySQL na hlavním uzlu:
$ sudo mysql -u root -p
Vytvořte testovací databázi. Zde se naše testovací databáze nazývá replikace_db.
mysql> CREATE DATABASE replication_db;
Ověřte existenci databáze.
mysql> SHOW DATABASES;

Nyní přejděte do slave uzlu, přihlaste se k serveru MySQL a znovu zkontrolujte, zda existuje replikační databáze db. Vidíme, že databáze je přítomna ve výstupu níže. To znamená, že došlo k replikaci z hlavního do podřízeného uzlu.
mysql> SHOW DATABASES;
