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.