Weboldal keresés

A MySQL Master-Slave replikáció beállítása az Ubuntu 18.04 rendszeren


A MySQL master-slave replikáció egy olyan eljárás, amely lehetővé teszi az adatbázisfájlok replikálását vagy másolását a hálózat egy vagy több csomópontján keresztül. Ez a beállítás redundanciát és hibatűrést biztosít, így a főcsomópont meghibásodása esetén az adatbázisok továbbra is visszaállíthatók a slave csomópontban. Ez nyugalmat biztosít a felhasználóknak, hogy semmi esetre sem vész el, mivel az adatbázisok másolata továbbra is lekérhető egy másik szerverről.

Ebből az útmutatóból megtudhatja, hogyan hajthat végre MySQL adatbázis Master-slave replikációt Ubuntu 18.04 rendszeren.

Előfeltételek

A beállítás során két, az Ubuntu 18.04-et futtató szerverünk lesz a következő IP-címekkel.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Most vessünk egyet, és nézzük meg, hogyan konfigurálhatjuk a Master-slave replikációs beállítást az Ubuntu rendszerben.

1. lépés: Telepítse a MySQL-t a mester- és slave csomópontokra

Az Ubuntu adattárak a MySQL 5.7 verzióját tartalmazzák. Az új funkciók kihasználásához és az esetleges problémák elkerüléséhez telepítse a MySQL legújabb verzióját. De először frissítsük a két csomópontot a következő apt paranccsal.

sudo apt update

A MySQL mindkét csomópontra történő telepítéséhez hajtsa végre a parancsot.

sudo apt install mysql-server mysql-client

Ezután nyissa meg a mysql konfigurációs fájlt.

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

A Fő csomóponton görgessen, és keresse meg a bind-address attribútumot az alábbiak szerint.

bind-address 	 =127.0.0.1

Módosítsa a visszahurkolási címet úgy, hogy megegyezzen a főcsomópont IP-címével.

bind-address  	=10.128.0.28

Ezután adjon meg egy értéket a server-id attribútumhoz a [mysqld] részben. A választott számnak nem szabad megegyeznie semmilyen más szerverazonosító számmal. Adjuk hozzá az 1 értéket.

server-id	 =1

A konfigurációs fájl legvégére másolja ki és illessze be az alábbi sorokat.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Lépjen ki a konfigurációs fájlból, és indítsa újra a MySQL szolgáltatást, hogy a változtatások érvénybe lépjenek a főcsomóponton.

sudo systemctl restart mysql

Annak ellenőrzéséhez, hogy a MySQL-kiszolgáló a várt módon fut-e, adja ki a parancsot.

sudo systemctl status mysql

Tökéletes! A MySQL szerver a várt módon fut!

2. lépés: Hozzon létre egy új felhasználót a replikációhoz a főcsomóponton

Ebben a szakaszban létrehozunk egy replikációs felhasználót a főcsomópontban. Ennek eléréséhez jelentkezzen be a MySQL szerverre az ábra szerint.

sudo mysql -u root -p

Ezután folytassa és hajtsa végre az alábbi lekérdezéseket, hogy létrehozzon egy replikafelhasználót, és hozzáférést biztosítson a replikációs szolga számára. Ne felejtse el használni az IP-címét.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Ezután futtassa a következő parancsot.

mysql> SHOW MASTER STATUS\G

A kimenetnek hasonlónak kell lennie az alább láthatóhoz.

Legyen figyelmes, és vegye figyelembe a mysql-bin.000002 értéket és a 1643 pozícióazonosítót. Ezek az értékek kulcsfontosságúak lesznek a slave szerver beállításakor.

3. lépés: Konfigurálja a MySQL Slave Servert

Menjen a szolga szerverre, és a főkiszolgálóhoz hasonlóan nyissa meg a MySQL konfigurációs fájlt.

sudo vim  /etc/mysql/mysql.conf.d/mysqld.cnf

A főszerverhez hasonlóan folytassa a következő sorok szerkesztését.

bind-address           = 10.128.0.29

Mint korábban, adjon meg egy értéket a server-id attribútumnak a [mysqld] szakaszban. Ezúttal válasszon más értéket. Vegyük a 2-t.

server-id		=2 

Ismét illessze be az alábbi sorokat a konfigurációs fájl legvégére.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Következő indítsa újra a MySQL-kiszolgálót a szolga csomóponton.

sudo systemctl restart mysql

Ha elkészült, mentse el, és lépjen ki a szövegszerkesztőből

Ezután jelentkezzen be a MySQL shellbe az ábra szerint.

sudo mysql -u root -p

Ebben a lépésben el kell végeznie néhány konfigurációt, amely lehetővé teszi a szolgakiszolgáló számára, hogy csatlakozzon a főszerverhez. De először állítsa le a szolga szálakat az ábrán látható módon.

mysql> STOP SLAVE; 

Ha engedélyezni szeretné, hogy a szolgakiszolgáló replikálja a főkiszolgálót, futtassa a parancsot.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='Saturn@1234', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Ha elég lelkes, észreveheti, hogy a mysql-bin.00002 értéket és a 1643 pozícióazonosítót használtuk, amely korábban a szolga replikációs felhasználó létrehozása után jelent meg.

Ezenkívül a főkiszolgáló IP-címét, replikációs felhasználóját és jelszavát használták.

Később indítsa el azt a szálat, amelyet korábban leállított.

mysql> START SLAVE;

4. lépés: Ellenőrizze a MySQL Master-Slave replikációt

Annak ellenőrzésére, hogy a telepítés valóban a várt módon működik-e, létrehozunk egy új adatbázist a mesteren, és ellenőrizzük, hogy replikálták-e a MySQL Slave szerveren.

Jelentkezzen be a MySQL-be a főkiszolgálón.

sudo mysql -u root -p

Hozzunk létre egy teszt adatbázist. Ebben az esetben létrehozunk egy replication_db nevű adatbázist.

mysql> CREATE DATABASE replication_db;

Most jelentkezzen be MySQL-példányába a szolgakiszolgálón.

sudo mysql -u root -p

Most listázza ki az adatbázisokat a lekérdezés segítségével.

mysql> SHOW DATABASES;

Észre fogja venni, hogy a master-en létrehozott adatbázist a slave-en replikálták. Fantasztikus ! A MySQL Master-slave replikációja a várt módon működik! Biztos lehet benne, hogy hiba esetén az adatbázis-fájlok másolatai a szolgakiszolgálóra replikálódnak.

Következtetés

Ebből az útmutatóból megtanulta, hogyan állíthat be MySQL Master-slave replikációs beállítást Ubuntu 18.04 rendszeren.