MySQL master-slave replikace je postup, který umožňuje replikaci nebo kopírování databázových souborů přes jeden nebo více uzlů v síti. Toto nastavení poskytuje redundanci a odolnost proti chybám, takže v případě selhání v hlavním uzlu , databáze lze stále obnovit v uzlu Slave . To dává uživatelům jistotu, že v žádném případě nebude vše ztraceno, protože repliku databází lze stále získat z jiného serveru.
V této příručce se naučíte, jak provést MySQL databáze Master-slave replikace na Ubuntu 18.04 systém.
Předpoklady
V nastavení budeme mít dva servery se systémem Ubuntu 18.04 s následujícími IP adresami.
Hlavní server:10.128.0.28 Slave server:10.128.0.29
Pojďme se nyní ponořit a podívat se, jak můžeme nakonfigurovat Master-slave nastavení replikace na Ubuntu .
Krok 1:Nainstalujte MySQL na hlavní a podřízené uzly
Ubuntu repozitáře obsahují verzi 5.7 MySQL . Chcete-li využít všech nových funkcí a vyhnout se potenciálním problémům, měli byste nainstalovat nejnovější verzi MySQL. Nejprve však aktualizujeme dva uzly pomocí následujícího příkazu apt.
Aktualizace $ sudo apt
Chcete-li nainstalovat MySQL na obou uzlech spusťte příkaz.
$ sudo apt install mysql-server mysql-client
Dále otevřete mysql konfigurační soubor.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
V Hlavním uzlu , přejděte a vyhledejte bind-address
atribut, jak je uvedeno níže.
bind-address =127.0.0.1
Změňte adresu zpětné smyčky tak, aby odpovídala IP adrese hlavního uzlu .
bind-address =10.128.0.28
Dále zadejte hodnotu pro server-id
atribut v [mysqld]
sekce. Číslo, které zvolíte, by se nemělo shodovat s žádným jiným číslem serveru. Přiřaďme hodnotu 1
.
ID serveru =1
Na úplný konec konfiguračního souboru zkopírujte a vložte řádky níže.
log_bin =/var/log/mysql/mysql-bin.loglog_bin_index =/var/log/mysql/mysql-bin.log.indexrelay_log =/var/log/mysql/mysql-relay-binrelay_log_index =/var/log /mysql/mysql-relay-bin.index
Ukončete konfigurační soubor a restartujte službu MySQL, aby se změny projevily na hlavním uzlu.
$ sudo systemctl restart mysql
Chcete-li ověřit, zda server MySQL běží podle očekávání, zadejte příkaz.
$ sudo systemctl status mysql
Perfektní! Server MySQL běží podle očekávání!
Krok 2:Vytvořte nového uživatele pro replikaci na hlavním uzlu
V této části vytvoříme uživatele replikace v hlavním uzlu . Chcete-li toho dosáhnout, přihlaste se k serveru MySQL podle obrázku.
$ sudo mysql -u root -p
Dále pokračujte a proveďte níže uvedené dotazy, abyste vytvořili uživatele repliky a udělili přístup podřízenému replikačnímu zařízení. Nezapomeňte použít svou IP adresu.
mysql> CREATE USER 'replication_user'@'10.128.0.29 ' IDENTIFIED BY 'replica_password';mysql> UDĚLEJTE REPLIKACI SLAVE NA *.* TOMU 'replication_user '@'10.128.0.29 ';
Dále spusťte následující příkaz.
mysql> ZOBRAZIT STAV HLAVNÍHO\G
Výstup by měl být podobný tomu, co můžete vidět níže.
Buďte nadšení a všimněte si mysql-bin.000002
hodnotu a ID pozice 1643
. Tyto hodnoty budou klíčové při nastavování slave serveru .
Krok 3:Nakonfigurujte podřízený server MySQL
Vydejte se na podřízený server a jako jsme to udělali s hlavním serverem , otevřete konfigurační soubor MySQL.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Stejně jako hlavní server , pokračujte v úpravě následujících řádků.
bind-address =10.128.0.29
Stejně jako dříve zadejte hodnotu pro server-id
atribut v [mysqld]
sekce. Tentokrát vyberte jinou hodnotu. Pojďme na 2
.
id serveru =2
Znovu vložte řádky níže na úplný konec konfiguračního souboru.
log_bin =/var/log/mysql/mysql-bin.loglog_bin_index =/var/log/mysql/mysql-bin.log.indexrelay_log =/var/log/mysql/mysql-relay-binrelay_log_index =/var/log /mysql/mysql-relay-bin.index
Dále restartujte MySQL server na slave uzlu.
$ sudo systemctl restart mysql
Po dokončení uložte a ukončete textový editor
Dále se přihlaste do prostředí MySQL podle obrázku.
$ sudo mysql -u root -p
V tomto kroku budete muset provést nějakou konfiguraci, která umožní slave server pro připojení k hlavnímu serveru . Nejprve však zastavte podřízená vlákna, jak je znázorněno.
mysql> STOP SLAVE;
Chcete-li povolit podřízený server replikovat Hlavní server , spusťte příkaz.
mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE ='mysql-bin.000002', MASTER_LOG_POS =164Pokud jste dostatečně zapálení, zjistíte, že jsme použili
mysql-bin.00002
ID hodnoty a pozice1643
dříve zobrazené po vytvoření uživatele replikace slave.Kromě toho byla použita IP adresa hlavního serveru, uživatel replikace a heslo.
Později začněte vlákno, které jste předtím zastavili.
mysql> START SLAVE;Krok 4:Ověřte replikaci MySQL Master-Slave
Abychom zkontrolovali, zda nastavení skutečně funguje podle očekávání, vytvoříme novou databázi na hlavním serveru a zkontrolujeme, zda byla replikována na serveru MySQL Slave.
Přihlaste se do MySQL na hlavním serveru .
$ sudo mysql -u root -pVytvoříme testovací databázi. V tomto případě vytvoříme databázi s názvem replication_db .
mysql> CREATE DATABASE replication_db;Nyní se přihlaste ke své instanci MySQL na slave serveru .
$ sudo mysql -u root -pNyní vypište databáze pomocí dotazu.
mysql> ZOBRAZIT DATABÁZE;Všimnete si databáze, kterou jste vytvořili na masteru byl replikován na slave . Úžasný ! Vaše replikace MySQL Master-Slave funguje podle očekávání! Nyní si můžete být jisti, že v případě jakéhokoli selhání budou kopie databázových souborů replikovány na podřízený server.
Závěr
V této příručce jste se naučili, jak nastavit MySQL Master-slave nastavení replikace na Ubuntu 18.04 .