Android

Paano i-configure ang mysql master

How to Configure MySQL Database Replication with Master and Slave on CentOS

How to Configure MySQL Database Replication with Master and Slave on CentOS

Talaan ng mga Nilalaman:

Anonim

Ang replication ng MySQL ay isang proseso na nagbibigay-daan sa iyo upang awtomatikong kopyahin ang data mula sa isang server ng database sa isa o higit pang mga server.

Sinusuportahan ng MySQL ang isang bilang ng 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 tutorial na ito, ipapaliwanag namin kung paano mag-set up ng isang replication ng MySQL Master / Slave sa isang master at isang alipin server sa CentOS 7. Ang parehong mga hakbang ay nalalapat para sa MariaDB.

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

Sa halimbawang ito, ipinapalagay namin na mayroon kang dalawang server na tumatakbo sa CentOS 7, na maaaring makipag-usap sa bawat isa sa isang pribadong network. Kung ang iyong hosting provider ay hindi nagbibigay ng 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 sa halimbawang ito ay mayroong mga sumusunod na IP:

Master IP: 192.168.121.59 Slave IP: 192.168.121.14

I-install ang MySQL

Ang default Ang mga repositori ng CentOS 7 ay hindi kasama ang mga pakete ng MySQL kaya mai-install namin ang MySQL mula sa kanilang opisyal na Yum Repository. Upang maiwasan ang anumang mga isyu, mai-install namin ang parehong bersyon ng MySQL 5.7 sa parehong mga server.

I-install ang MySQL sa parehong mga server ng Master at Slave:

sudo yum localinstall sudo yum install mysql-community-server

Kapag nakumpleto ang pag-install, simulan ang serbisyo ng MySQL at paganahin ito upang awtomatikong magsimula sa boot gamit ang:

sudo systemctl enable mysqld sudo systemctl start mysqld

Kapag nagsimula ang MySQL server sa kauna-unahang pagkakataon, ang isang pansamantalang password ay nabuo para sa gumagamit ng root ng MySQL. Upang mahanap ang password gamitin ang sumusunod na grep na utos:

sudo grep 'temporary password' /var/log/mysqld.log

Patakbuhin ang utos mysql_secure_installation upang itakda ang iyong bagong password sa ugat at pagbutihin ang seguridad ng MySQL halimbawa:

mysql_secure_installation

Ipasok ang pansamantalang root password at sagutin ang Y (oo) sa lahat ng mga katanungan.

Ang bagong password ay dapat na hindi bababa sa 8-character ang haba at upang maglaman ng hindi bababa sa isang titik ng malalaking titik, isang maliit na titik, isang numero, at isang espesyal na karakter.

I-configure ang Master Server

Una, i-configure namin ang master ng MySQL server at gawin ang mga sumusunod na pagbabago:

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

Upang gawin ito buksan ang file ng pagsasaayos ng MySQL at idagdag ang mga sumusunod na linya sa seksyon:

sudo nano /etc/my.cnf master: /etc/my.cnf

bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin

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

sudo systemctl restart mysqld

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

mysql -uroot -p

Mula sa loob ng prompt ng MySQL, patakbuhin ang sumusunod na mga query sa SQL na lilikha ng gumagamit ng replica at bibigyan ang pribilehiyo ng REPLICATION SLAVE sa gumagamit:

CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14'; Siguraduhin na binago mo ang IP sa iyong alipin IP address. 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: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

Alalahanin ang pangalan ng file, 'mysql-bin.000001' at Posisyon '1427'. Kakailanganin mo ang mga halagang ito kapag na-configure ang server ng alipin. Ang mga halagang ito ay marahil ay naiiba sa iyong server.

I-configure ang Server ng Alipin

Tulad ng para sa master server sa itaas, gagawin namin ang mga sumusunod na pagbabago sa server ng alipin:

  • Itakda ang MySQL server upang makinig sa pribadong IPSet ng isang natatanging server IDEnable ang binary logging

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

sudo nano /etc/my.cnf alipin: /etc/my.cnf

bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin

I-restart ang serbisyo ng MySQL:

sudo systemctl restart mysqld

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 MySQL:

mysql -uroot -p

Una, itigil ang mga alipin ng alipin:

STOP SLAVE;

Patakbuhin ang sumusunod na query na magse-set up ng alipin upang magtiklop sa master:

CHANGE MASTER TO MASTER_HOST='192.168.121.59', MASTER_USER='replica', MASTER_PASSWORD='strong_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1427;

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 setup ng Master / Slave replication.

Upang mapatunayan na gumagana ang lahat tulad ng inaasahan, gagawa kami ng isang bagong database sa master server:

mysql -uroot -p

CREATE DATABASE replicatest;

Mag-login sa alipin na MySQL shell:

mysql -uroot -p

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 replication ng MySQL Master / Slave sa CentOS 7.

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

centos mysql mariadb