Android

Paano i-configure ang mysql (mariadb) master

How to configure two node MariaDB Master and Slave Replication

How to configure two node MariaDB Master and Slave Replication

Talaan ng mga Nilalaman:

Anonim

Ang replication ng MySQL ay isang proseso ng pagkopya ng data mula sa isang database server (master) sa isa o higit pang mga server (alipin).

Sinusuportahan ng MySQL ang ilang mga topologies ng pagtitiklop na may topology ng Master / Slave na isa sa mga kilalang topologies kung saan ang isang database server ay kumikilos bilang master, habang ang isa o higit pang mga server ay kumikilos bilang mga alipin. Bilang default, ang pagtitiklop ay hindi magkakatulad kung saan ang master ay nagpapadala ng mga kaganapan na naglalarawan ng mga pagbabago sa database sa binary log nito at hinihiling ng mga alipin ang mga kaganapan kapag handa na sila.

Sa gabay na ito, ipapakita namin sa iyo kung paano mag-set up ng pagtitiklop ng MariaDB Master / Slave sa isang master at isang alipin server sa Debian 10. Si MariaDB ay ang default na pagpapatupad ng MySQL sa Debian. Ang parehong mga hakbang ay nalalapat para sa Oracle MySQL.

Ang ganitong uri ng topology ng pagtitiklop ay pinaka-akma para sa pag-aalis ng basahin na mga replika para sa pagbabasa ng scaling, live na mga database ng backup para sa pagbawi ng sakuna, at para sa mga trabaho sa analytics.

Mga kinakailangan

Ipinapalagay namin na mayroon kang dalawang server na tumatakbo sa Debian 10, nakikipag-usap sa bawat isa sa isang pribadong network. Kung ang iyong hosting provider ay hindi sumusuporta sa mga pribadong IP address, maaari mong gamitin ang mga pampublikong IP address at i-configure ang iyong firewall upang payagan ang trapiko sa port 3306 lamang mula sa mga mapagkakatiwalaang mapagkukunan.

Ang mga server na ginamit sa halimbawang ito ay may mga sumusunod na IP address:

Master IP: 10.10.8.12 Slave IP: 10.10.8.164

Pag-install ng MariaDB

Ang default na Debian 10 repositori ay may kasamang MariaDB bersyon 10.3. Pinakamabuting mag-install ng parehong bersyon ng MariaDB sa parehong mga server upang maiwasan ang anumang mga potensyal na isyu.

I-install ang MariaDB sa kapwa master at alipin sa pamamagitan ng pagpapalabas ng mga sumusunod na utos:

sudo apt-get update sudo apt-get install mariadb-server

Pag-configure sa Master Server

Ang unang hakbang ay upang mai-set up ang master server. Gagawa kami ng mga sumusunod na pagbabago:

  • Itakda ang MariaDB server upang makinig sa pribadong IP.Set isang natatanging server ID.Enable binary logging.

Buksan ang file ng pagsasaayos ng MariaDB at uncomment o itakda ang mga sumusunod na linya:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf master: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.12 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

Kapag tapos na, i-save ang file at i-restart ang serbisyo ng MySQL para sa mga pagbabago na magkakabisa:

sudo systemctl restart mariadb

Ang susunod na hakbang ay upang lumikha ng isang bagong gumagamit ng pagtitiklop. Mag-log in sa MariaDB server bilang root user:

sudo mysql

Patakbuhin ang sumusunod na mga query sa SQL upang lumikha ng isang gumagamit na nagngangalang replica at bigyan ang pribilehiyo ng REPLICATION SLAVE sa gumagamit:

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164'; Siguraduhin na binago mo ang IP gamit ang iyong IP address ng alipin. Maaari mong pangalanan ang gumagamit ayon sa gusto mo.

Habang nasa loob pa rin ng MySQL prompt, isagawa ang sumusunod na utos na mag-print ng binary filename at posisyon.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)

Alalahanin ang pangalan ng file, 'mysql-bin.000001' at Posisyon '328'. Ang mga halagang ito ay kinakailangan kapag isinaayos ang server ng alipin at marahil ay naiiba sa iyong server.

Pag-configure ng Server ng Alipin

Gagawa kami ng parehong mga pagbabago sa server ng alipin tulad ng mga nasa master:

  • Itakda ang MySQL server upang makinig sa pribadong IP.Set isang natatanging server ID.Enable binary logging.

Buksan ang file ng pagsasaayos ng MariaDB at i-edit ang mga sumusunod na linya:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf alipin: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.164 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

I-restart ang serbisyo ng MariaDB:

sudo systemctl restart mariadb

Ang susunod na hakbang ay upang mai-configure ang mga parameter na gagamitin ng server ng alipin upang kumonekta sa master server. Mag-login sa shell ng MariaDB:

sudo mysql

Magsimula sa pamamagitan ng pagpapahinto sa mga alipin ng alipin:

STOP SLAVE;

Patakbuhin ang sumusunod na query upang i-configure ang replication ng Master / Alipin:

CHANGE MASTER TO MASTER_HOST='10.10.8.12', CHANGE MASTER TO MASTER_HOST='10.10.8.12', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

Tiyaking gumagamit ka ng wastong IP address, user name, at password. Ang pangalan at posisyon ng log file ay dapat na kapareho ng mga halagang nakuha mo mula sa master server.

Kapag tapos na, simulan ang mga thread ng alipin.

START SLAVE;

Subukan ang Pag-configure

Sa puntong ito, dapat kang magkaroon ng isang gumaganang pag-setup ng Master / Slave replication.

Upang mapatunayan na ang lahat ay naka-setup nang tama, lumikha ng isang bagong database sa master server:

sudo mysql

CREATE DATABASE replicatest;

Mag-login sa alipin na MySQL shell:

sudo mysql

Patakbuhin ang sumusunod na utos upang ilista ang lahat ng mga database:

SHOW DATABASES;

Mapapansin mo na ang database na iyong nilikha sa master server ay nai-replicate sa alipin:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

Konklusyon

Sa tutorial na ito, ipinakita namin na lumikha ka ng isang pagtitiklop ng MariaDB Master / Slave sa Debian 10.

Huwag mag-atubiling mag-iwan ng komento kung mayroon kang mga katanungan.

debian mysql mariadb