Giunsa ang Pag-setup sa MySQL Master-Slave Replication sa Ubuntu 18.04


Ang MySQL master-slave replication usa ka pamaagi nga nagtugot sa mga file sa database nga makopya o makopya sa usa o daghang mga node sa usa ka network. Kini nga setup naghatag og redundancy ug fault tolerance sa ingon nga sa panghitabo sa usa ka kapakyasan sa Master node, ang mga database mahimo pa nga mabawi sa Slave node. Naghatag kini og kalinaw sa hunahuna sa mga tiggamit nga ang tanan dili mawala sa bisan unsang panghitabo tungod kay ang usa ka kopya sa mga database mahimo pa nga makuha gikan sa lain nga server.

Niini nga giya, makakat-on ka kung unsaon paghimo ang MySQL database Master-slave replication sa Ubuntu 18.04 system.

Sa setup, kita adunay duha ka mga server nga nagdagan sa Ubuntu 18.04 uban sa mosunod nga mga IP address.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Atong susihon karon ug tan-awon kung giunsa naton ma-configure ang pag-setup sa replikasyon sa Master-slave sa Ubuntu.

Lakang 1: I-install ang MySQL sa Master ug Slave Nodes

Ang mga repositoryo sa Ubuntu adunay bersyon 5.7 sa MySQL. Aron mapahimuslan ang bisan unsang bag-ong mga bahin ug malikayan ang mga potensyal nga isyu, kinahanglan nimo nga i-install ang labing bag-ong bersyon sa MySQL. Apan una, atong i-update ang duha ka node gamit ang mosunod nga apt command.

$ sudo apt update

Aron ma-install ang MySQL sa duha ka mga node, ipatuman ang mando.

$ sudo apt install mysql-server mysql-client

Sunod, Ablihi ang mysql configuration file.

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

Sa Master node, i-scroll ug pangitaa ang attribute nga bind-address sama sa gipakita sa ubos.

bind-address 	 =127.0.0.1

Usba ang loopback nga adres aron mohaum sa IP address sa Master node.

bind-address  	=10.128.0.28

Sunod, pagtino ug bili para sa server-id attribute sa [mysqld] nga seksyon. Ang numero nga imong pilion kinahanglan dili motakdo sa bisan unsang ubang server-id nga numero. Atong i-assign ang value 1.

server-id	 =1

Sa katapusan sa configuration file, kopyaha ug idikit ang mga linya sa ubos.

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

Paggawas sa configuration file ug i-restart ang serbisyo sa MySQL alang sa mga pagbag-o nga epektibo sa Master node.

$ sudo systemctl restart mysql

Aron mapamatud-an nga ang MySQL server nagdagan sama sa gipaabut, i-isyu ang mando.

$ sudo systemctl status mysql

Hingpit! Ang MySQL server nagdagan sama sa gipaabut!

Lakang 2: Paghimo usa ka Bag-ong Gumagamit alang sa Replikasyon sa Master Node

Niini nga seksyon, maghimo kami usa ka replikasyon nga tiggamit sa master node. Aron makab-ot kini, pag-log in sa MySQL server sama sa gipakita.

$ sudo mysql -u root -p

Sunod, ipadayon ug ipatuman ang mga pangutana sa ubos aron makahimo usa ka replika nga tiggamit ug hatagan ang access sa replikasyon nga ulipon. Hinumdomi nga gamiton ang imong IP address.

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

Sunod, pagdagan ang mosunud nga mando.

mysql> SHOW MASTER STATUS\G

Ang output kinahanglan nga susama sa unsay imong makita sa ubos.

Pag-amping ug timan-i ang mysql-bin.000002 nga kantidad ug ang Position ID 1643. Kini nga mga kantidad mahimong hinungdanon kung i-set up ang slave server.

Lakang 3: I-configure ang MySQL Slave Server

Pangadto sa slave server ug sama sa among gibuhat sa Master server, ablihi ang MySQL configuration file.

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

Sama sa master server, ipadayon ang pag-edit sa mga musunod nga linya.

bind-address           = 10.128.0.29

Sama sa una, pagtino ug bili alang sa server-id attribute sa [mysqld] nga seksyon. Niining higayona pagpili og lain nga kantidad. Gamiton nato ang 2.

server-id		=2 

Pag-usab, idikit ang mga linya sa ubos sa katapusan sa configuration file.

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

Sunod i-restart ang MySQL server sa slave node.

$ sudo systemctl restart mysql

Kung nahuman na, i-save ug gawas sa text editor

Sunod, pag-log in sa MySQL shell sama sa gipakita.

$ sudo mysql -u root -p

Sa kini nga lakang, kinahanglan nimo nga maghimo usa ka pag-configure nga magtugot sa slave server nga makonektar sa master server. Apan una, hunonga ang mga hilo sa ulipon sama sa gipakita.

mysql> STOP SLAVE; 

Aron tugotan ang slave server nga kopyahon ang Master server, padagana ang command.

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;

Kung gusto nimo nga igo, imong maobserbahan nga gigamit namon ang mysql-bin.00002 nga kantidad ug ID sa posisyon 1643 nga gipakita sa sayo pa pagkahuman sa paghimo sa tiggamit nga replikasyon sa ulipon.

Dugang pa, gigamit ang IP address sa Master server, replication user ug password.

Sa ulahi, sugdi ang hilo nga imong gihunong kaniadto.

mysql> START SLAVE;

Lakang 4: I-verify ang MySQL Master-Slave Replication

Aron masusi kung ang pag-setup sa tinuud nagtrabaho sama sa gipaabut, maghimo kami usa ka bag-ong database sa agalon ug susihon kung kini gisundog ba sa MySQL Slave server.

Log sa MySQL sa Master server.

$ sudo mysql -u root -p

Maghimo kita og database sa pagsulay. Niini nga kaso, maghimo kita og database nga gitawag og replication_db.

mysql> CREATE DATABASE replication_db;

Karon, pag-log in sa imong MySQL instance sa slave server.

$ sudo mysql -u root -p

Karon ilista ang mga database gamit ang pangutana.

mysql> SHOW DATABASES;

Mamatikdan nimo ang database nga imong gihimo sa agalon nga gisundog sa ulipon. Kahibulongan! Ang imong MySQL Master-slave replication nagtrabaho sama sa gipaabut! Makasalig ka na nga kung adunay bisan unsang kapakyasan, ang mga kopya sa mga file sa database i-replicate sa slave server.

Niini nga giya, nahibal-an nimo kung giunsa ang pag-set up sa MySQL Master-slave replication setup sa Ubuntu 18.04.