Otu esi edozi MySQL Master-Slave Replication na Ubuntu 18.04
MySQL master-slave replication bụ usoro na-enye ohere ka emegharị ma ọ bụ depụta faịlụ nchekwa data gafee otu ọnụ ma ọ bụ karịa na netwọk. Ntọlite a na-enye nkwụsịghachi na ntachi obi dị ka na ọ bụrụ na ọdịda dị na Master node, a ka nwere ike nwetaghachi ọdụ data na oghere ohu. Nke a na-enye ndị ọrụ udo nke uche na ihe niile agaghị efu n'ime ihe ọ bụla dị ka oyiri nke ọdụ data ka enwere ike nwetaghachi na sava dị iche.
N'ime ntuziaka a, ị ga-amụta otu esi eme MySQL nchekwa data Master-ohu na sistemụ Ubuntu 18.04.
Na nhazi ahụ, anyị ga-enwe sava abụọ na-agba Ubuntu 18.04 na adreesị IP ndị a.
Master server: 10.128.0.28 Slave server: 10.128.0.29
Ka anyị banye ugbu a wee hụ ka anyị nwere ike isi hazie nrụpụta nrụgharị Master-ohu na Ubuntu.
Kwụpụ 1: Wụnye MySQL na Master and Slave Nodes
Ebe nchekwa Ubuntu nwere ụdị 5.7 nke MySQL. Iji jiri njirimara ọhụrụ ọ bụla wee zere nsogbu ndị nwere ike ime, ị kwesịrị ịwụnye ụdị MySQL ọhụrụ. Mana nke mbụ, ka anyị melite ọnụ abụọ ahụ site na iji iwu dabara adaba.
$ sudo apt update
Iji wụnye MySQL na ọnụ abụọ, mebie iwu ahụ.
$ sudo apt install mysql-server mysql-client
Ọzọ, mepee faịlụ nhazi mysql.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
N'elu ọnụ ụzọ nna ukwu, pịgharịa gaa na chọta bind-address
dị ka egosiri n'okpuru.
bind-address =127.0.0.1
Gbanwee adreesị loopback ka ọ dabara na adreesị IP nke ọnụ Master.
bind-address =10.128.0.28
Na-esote, kọwaa uru maka àgwà server-id
na ngalaba [mysqld]
. Nọmba ị họọrọ agaghị adaba na nọmba sava-ID ọ bụla ọzọ. Ka anyị kenye uru 1
.
server-id =1
Na njedebe nke faịlụ nhazi ahụ, detuo ma mado ahịrị ndị dị n'okpuru.
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
Wepụ faịlụ nhazi ahụ wee malitegharịa ọrụ MySQL maka mgbanwe ndị ahụ ka ọ dị na Master node.
$ sudo systemctl restart mysql
Iji nyochaa na MySQL nkesa na-agba ọsọ dị ka a tụrụ anya, nye iwu.
$ sudo systemctl status mysql
Zuru oke! Ihe nkesa MySQL na-arụ ọrụ dịka a tụrụ anya!
Kwụpụ 2: Mepụta onye ọrụ ọhụrụ maka mmegharị na Master Node
N'akụkụ a, anyị ga-emepụta onye na-emegharị ihe n'ime oghere ukwu. Iji mezuo nke a, banye na sava MySQL dị ka egosiri.
$ sudo mysql -u root -p
Na-esote, gaba na mebie ajụjụ ndị dị n'okpuru ka ịmepụta onye ọrụ oyiri wee nye ohere ịnweta ohu mmegharị ahụ. Cheta iji adreesị IP gị.
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';
Na-esote, mee iwu na-esonụ.
mysql> SHOW MASTER STATUS\G
Ihe mmepụta kwesịrị ịdị ka nke ị nwere ike ịhụ n'okpuru.
Kpachara anya ma rịba ama uru mysql-bin.000002
yana NJ ọnọdụ 1643
. Ụkpụrụ ndị a ga-adị mkpa mgbe ị na-edozi ihe nkesa ohu.
Kwụpụ 3: Hazie sava MySQL
Gaa na sava ohu na dị ka anyị mere ihe nkesa Master, mepee faịlụ nhazi MySQL.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Dịka ihe nkesa nna ukwu, gaba n'ihu dezie ahịrị ndị a.
bind-address = 10.128.0.29
Dịka ọ dị na mbụ, kọwapụta uru maka njirimara server-id
na ngalaba [mysqld]
. Oge a họrọ uru dị iche. Ka anyị jiri 2
gaa.
server-id =2
Ọzọ, mado ahịrị ndị dị n'okpuru na njedebe nke faịlụ nhazi ahụ.
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
Ọzọ malitegharịa ihe nkesa MySQL na ọnụ ohu.
$ sudo systemctl restart mysql
Ozugbo emechara, chekwaa wee pụọ na ndezi ederede
Ọzọ, banye na MySQL shei dị ka egosiri.
$ sudo mysql -u root -p
N'ime usoro a, ị ga-achọ ịme nhazi nke ga-ekwe ka ihe nkesa ohu jikọọ na ihe nkesa nna ukwu. Mana buru ụzọ kwụsị eriri ohu dị ka egosiri.
mysql> STOP SLAVE;
Ka ikwe ka ihe nkesa ohu megharịa ihe nkesa Master, mee iwu ahụ.
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;
Ọ bụrụ na ị na-anụ ọkụ n'obi, ị ga-ahụ na anyị ejirila mysql-bin.00002
uru na ọnọdụ ID 1643
gosipụtara na mbụ mgbe emechara onye ọrụ mmegharị ohu.
Na mgbakwunye, ejirila adreesị IP nke ihe nkesa Master, onye na-emegharịgharị na paswọọdụ.
E mesịa, malite threadi ahụ ị kwụsịrị na mbụ.
mysql> START SLAVE;
Kwụpụ 4: Nyochaa MySQL Master-Slave Replication
Iji lelee ma ntọlite na-arụ ọrụ n'ezie dịka a tụrụ anya ya, anyị ga-emepụta nchekwa data ọhụrụ na nna ukwu wee lelee ma ọ bụrụ na emegharịrị ya na sava MySQL.
Banye na MySQL na ihe nkesa Master.
$ sudo mysql -u root -p
Ka anyị mepụta nchekwa data ule. N'okwu a, anyị ga-emepụta nchekwa data a na-akpọ replication_db.
mysql> CREATE DATABASE replication_db;
Ugbu a, banye na ihe atụ MySQL na sava ohu.
$ sudo mysql -u root -p
Ugbu a depụta ọdụ data site na iji ajụjụ.
mysql> SHOW DATABASES;
Ị ga-achọpụta na nchekwa data ị mepụtara na nna ukwu ka emegharịrị na ohu. Dị egwu! Ntugharị MySQL Master-ohu na-arụ ọrụ dịka a tụrụ anya ya! Ị nwere ike ijide n'aka ugbu a na ọ bụrụ na ọdịda ọ bụla, a ga-emegharị faịlụ nchekwa data na sava ohu.
N'ime ntuziaka a, ị mụtara ka esi melite MySQL Master-ohu replication setup na Ubuntu 18.04.