Bii o ṣe le Ṣeto Iṣatunṣe Olukọni-Ẹru MySQL lori Ubuntu 18.04


Ifiwera oluwa-ẹrú MySQL jẹ ilana ti o fun laaye awọn faili aaye data lati tun tabi daakọ kọja ọkan tabi diẹ ẹ sii awọn apa ni nẹtiwọọki kan. Eto yii n pese apọju ati ifarada ẹbi bii pe ninu iṣẹlẹ ti ikuna ninu oju ipade Ọga, awọn apoti isura data tun le gba pada ni oju ipade Slave. Eyi fun awọn olumulo ni alaafia ti ọkan pe gbogbo kii yoo padanu ni eyikeyi iṣẹlẹ bi ẹda ti awọn apoti isura data le tun gba pada lati ọdọ olupin miiran.

Ninu itọsọna yii, iwọ yoo kọ bi o ṣe le ṣe atunse ibi ipamọ data MySQL Titunto si-ẹrú lori eto Ubuntu 18.04 kan.

Ninu iṣeto, a yoo ni awọn olupin meji ti n ṣiṣẹ Ubuntu 18.04 pẹlu awọn adirẹsi IP atẹle.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Jẹ ki a wọ inu bayi ki a wo bawo ni a ṣe le tunto iṣeto ẹda ẹda Ọga-ẹrú lori Ubuntu.

Igbesẹ 1: Fi MySQL sori Titunto ati Awọn apa Slave

Awọn ibi ipamọ Ubuntu ni ẹya 5.7 ti MySQL ni. Lati lo anfani awọn ẹya tuntun eyikeyi ati yago fun awọn ọran ti o ni agbara, o yẹ ki o fi ẹya MySQL tuntun sii. Ṣugbọn ni akọkọ, jẹ ki a ṣe imudojuiwọn awọn apa meji nipa lilo pipaṣẹ apt atẹle.

$ sudo apt update

Lati fi MySQL sori ẹrọ lori awọn apa mejeeji, ṣe pipaṣẹ naa.

$ sudo apt install mysql-server mysql-client

Nigbamii, Ṣii faili iṣeto mysql.

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

Lori oju ipade Ọga, yi lọ ki o wa abuda adirẹsi-abuda bi a ti han ni isalẹ.

bind-address 	 =127.0.0.1

Yi adirẹsi loopback pada lati baamu adirẹsi IP ti oju ipade Titunto si.

bind-address  	=10.128.0.28

Itele, ṣọkasi iye kan fun olupin-id abuda ni apakan [mysqld] . Nọmba ti o yan ko yẹ ki o baamu nọmba id-olupin miiran miiran. Jẹ ki a fi iye naa silẹ 1 .

server-id	 =1

Ni opin pupọ ti faili iṣeto, daakọ ati lẹẹ mọ awọn ila ti o wa ni isalẹ.

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

Jade kuro ni faili iṣeto naa ki o tun bẹrẹ iṣẹ MySQL fun awọn ayipada lati ni ipa lori oju ipade Ọga.

$ sudo systemctl restart mysql

Lati rii daju pe olupin MySQL n ṣiṣẹ bi o ti ṣe yẹ, fun ni aṣẹ.

$ sudo systemctl status mysql

Pipe! Olupin MySQL n ṣiṣẹ bi o ti ṣe yẹ!

Igbesẹ 2: Ṣẹda Olumulo Titun fun Ifiranṣẹ lori Node Titunto

Ni apakan yii, a yoo ṣẹda olumulo ẹda kan ni oju ipade. Lati ṣaṣeyọri eyi, wọle si olupin MySQL bi o ti han.

$ sudo mysql -u root -p

Nigbamii, tẹsiwaju ki o ṣe awọn ibeere ni isalẹ lati ṣẹda olumulo ti o jọra ati fifun aaye si ẹrú atunse naa. Ranti lati lo adiresi IP rẹ.

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';

Nigbamii, ṣiṣe aṣẹ atẹle.

mysql> SHOW MASTER STATUS\G

Ijade yẹ ki o jẹ iru si ohun ti o le rii ni isalẹ.

Jẹ itara ati akiyesi iye mysql-bin.000002 ati ID ipo 1643 . Awọn iye wọnyi yoo jẹ pataki nigbati o ba ṣeto olupin ẹrú naa.

Igbesẹ 3: Tunto Server Server MySQL

Jade lọ si olupin ẹrú ati bi a ṣe pẹlu olupin Titunto, ṣii faili iṣeto MySQL.

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

Gẹgẹ bi olupin oluwa, tẹsiwaju lati satunkọ awọn ila wọnyi.

bind-address           = 10.128.0.29

Bii ti tẹlẹ, ṣọkasi iye kan fun olupin-id ikalara ni apakan [mysqld] . Akoko yii yan iye ti o yatọ. Jẹ ki a lọ pẹlu 2 .

server-id		=2 

Lẹẹkansi, lẹẹ mọ awọn ila ti o wa ni isalẹ ni opin pupọ ti faili iṣeto ni.

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

Nigbamii ti tun bẹrẹ olupin MySQL lori oju ipade ẹrú.

$ sudo systemctl restart mysql

Lọgan ti o ti ṣe, fipamọ ati jade kuro ni olootu ọrọ

Nigbamii, wọle si ikarahun MySQL bi o ti han.

$ sudo mysql -u root -p

Ni igbesẹ yii, iwọ yoo nilo lati ṣe iṣeto diẹ ninu eyiti yoo gba olupin olupin laaye lati sopọ si olupin oluwa. Ṣugbọn akọkọ, da awọn okun ẹrú bi o ti han.

mysql> STOP SLAVE; 

Lati gba olupin ẹrú laaye lati tun ṣe olupin Titunto, ṣiṣe aṣẹ naa.

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

Ti o ba ni itara to, iwọ yoo ṣe akiyesi pe a ti lo iye mysql-bin.00002 ati ipo ID 1643 ni iṣafihan tẹlẹ lẹhin ṣiṣẹda olumulo oluṣe ẹda.

Ni afikun, adirẹsi IP olupin Titunto si, olumulo atunṣe ati ọrọ igbaniwọle ti a ti lo.

Nigbamii, bẹrẹ okun ti o ti duro tẹlẹ.

mysql> START SLAVE;

Igbesẹ 4: Ṣayẹwo Iṣeduro Titunto-Slave MySQL

Lati ṣayẹwo ti iṣeto ba n ṣiṣẹ nit indeedtọ bi o ti ṣe yẹ, a yoo ṣẹda ibi ipamọ data tuntun lori oluwa ati ṣayẹwo lati rii boya o ti tun ṣe lori olupin MySQL Slave.

Wọle sinu MySQL ninu olupin Titunto.

$ sudo mysql -u root -p

Jẹ ki a ṣẹda ipilẹ data idanwo kan. Ni ọran yii, a yoo ṣẹda ipilẹ data ti a pe ni replication_db.

mysql> CREATE DATABASE replication_db;

Bayi, wọle si apẹẹrẹ MySQL rẹ ninu olupin ẹrú.

$ sudo mysql -u root -p

Bayi ṣe atokọ awọn apoti isura data nipa lilo ibeere naa.

mysql> SHOW DATABASES;

Iwọ yoo ṣe akiyesi ibi ipamọ data ti o ṣẹda lori oluwa ti tun ṣe lori ẹrú. Oniyi! Ifiweranṣẹ MySQL Titun-ẹrú rẹ n ṣiṣẹ bi o ti ṣe yẹ! O le ni isimi ni idaniloju bayi pe ni iṣẹlẹ ti ikuna eyikeyi, awọn ẹda ti awọn faili data data yoo tun ṣe si olupin ẹrú naa.

Ninu itọsọna yii, o kọ bi o ṣe le ṣeto iṣeto ẹda ẹda MySQL Master-ẹrú lori Ubuntu 18.04.