sql >> Databáze >  >> RDS >> Mysql

Jak nastavit replikaci MySQL v RHEL, Rocky a AlmaLinux

Replikace dat je proces kopírování dat přes více serverů za účelem zlepšení dostupnosti dat a zvýšení spolehlivosti a výkonu aplikace. V MySQL replikace, data jsou zkopírována z databáze z hlavního serveru do jiných uzlů v reálném čase, aby byla zajištěna konzistence dat a také zajištěna záloha a redundance.

V této příručce vám ukážeme, jak můžete nastavit MySQL (Master-Slave ) replikace v distribucích založených na RHEL, jako je CentOS , Fedora , Rocky Linux a AlmaLinux .

Nastavení replikace MySQL

Zde je naše MySQL nastavení laboratoře replikace.

MySQL Master – 10.128.0.14MySQL Slave – 10.128.15.211

Začněme…

Krok 1:Instalace MySQL na hlavní a podřízený server

Začneme instalací MySQL databáze na obou master a otrok servery.

$ sudo dnf install @mysql

Po dokončení instalace přejděte na spuštění databázového serveru.

$ sudo systemctl spustit mysqld

Poté jej povolte, aby se spustil při spuštění systému nebo po restartu.

$ sudo systemctl povolit mysqld

Poté potvrďte, že MySQL databázový server běží podle obrázku:

$ sudo systemctl status mysqld

Krok 2:Zabezpečení MySQL na hlavním a podřízeném serveru

Dalším krokem je zabezpečení MySQL databáze na obou master a otrok servery. Důvodem je, že výchozí nastavení jsou nezabezpečená a představují určité mezery, které mohou hackeři snadno zneužít.

Pro posílení MySQL tedy spusťte příkaz:

$ sudo mysql_secure_installation

Nejprve budete muset nastavit MySQL root heslo. Ujistěte se, že poskytujete silné heslo root, nejlépe s více než 8 znaky, které jsou kombinací velkých, malých písmen, speciálních a číselných znaků.

Pro zbývající výzvy zadejte 'Y' vyladit databázový server na doporučená nastavení.

Jakmile dokončíte instalaci a posílení MySQL na hlavním a podřízeném uzlu je dalším krokem konfigurace hlavního uzlu.

Krok 3:Konfigurace hlavního uzlu (serveru)

Dalším krokem je konfigurace Master uzel a udělte slave přístup uzlu k němu. Nejprve musíme upravit mysql-server.cnf konfigurační soubor.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Přidejte následující řádky pod [mysqld] sekce.

bind-address =10.128.0.14server-id =1log_bin =mysql-bin

Po dokončení uložte změny a ukončete. Poté restartujte MySQL server.

$ sudo sysemctl restart mysqld

Dále se přihlaste do MySQL shell.

$ 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> VYTVOŘIT UŽIVATELE 'replica'@'10.128.15.211' IDENTIFIKOVANÉ PODLE '[email protected]';mysql> UDĚLEJTE REPLIKACI SLAVE NA *.*TO 'replica'@'10.128.15.211';

Použijte změny a ukončete MySQL server.

mysql> FLUSH PRIVILEGES;mysql> EXIT;

Ověřte stav hlavního serveru.

mysql> ZOBRAZIT STAV MASTER\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 jako mysql-bin.000001 a Pozice 1232 .

Krok 4:Nakonfigurujte podřízený uzel (server)

Nyní se vraťte do Slave uzlu. Ještě jednou upravte mysql-server.cnf konfigurační soubor.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Stejně jako předtím vložte tyto řádky pod [mysqld] sekce. 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 =10.128.15.211server-id =2log_bin =mysql-bin

Uložte změny a ukončete soubor. Poté restartujte databázový server.

$ sudo systemctl restart mysqld

Chcete-li nakonfigurovat Slave uzel, který chcete replikovat z hlavního uzlu, přihlaste se k serveru MySQL podřízeného.

$ sudo mysql -u root -p

Nejprve a především zastavte vlákna 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> ZMĚNIT MASTER NA MASTER_HOST='10.128.0.14' , MASTER_USER='replika' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000_01_POS1' ,3_POS1=1 

Všimněte si, že MASTER_LOG_FILE a MASTER_LOG_POS příznaky odpovídají souboru a Pozice hodnoty z Hlavní uzel na konci kroku 1.

MASTER_HOST , MASTER_USER, a MASTER_PASSWORD odpovídají hlavní IP adrese, uživateli replikace a heslu uživatele replikace.

Potom spusťte vlákna replikace slave:

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á replication_db .

mysql> CREATE DATABASE replication_db;
Ověřte existenci databáze.
mysql> ZOBRAZIT DATABÁZE;

Nyní přejděte do slave uzlu, přihlaste se k serveru MySQL a potvrďte, že replication_db databáze je přítomna. Z výstupu níže vidíme, že databáze je přítomna. Toto je potvrzení, že replikace proběhla z hlavního do podřízeného uzlu.

mysql> ZOBRAZIT DATABÁZE;

A je to, úspěšně jsme předvedli, jak můžete nastavit MySQL model replikace master-slave, který dokáže replikovat databáze z hlavního uzlu na uzel slave.


  1. Zachyťte varování plánu provádění pomocí rozšířených událostí

  2. jaký je problém s AttachDbFilename

  3. SQL Fuzzy Matching

  4. Oracle sql:aktualizujte, pokud existuje else insert