Android

Paano i-configure ang mysql master

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

Talaan ng mga Nilalaman:

Anonim

Ang MySQL pagtitiklop ay isang proseso na nagbibigay-daan sa data mula sa isang server ng database na awtomatikong makopya 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.

Ang tutorial na ito ay sumasaklaw sa isang pangunahing halimbawa ng MySQL Master / Slave replication sa isang master at isang alipin server sa Ubuntu 18.04. Ang parehong mga hakbang na 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

Ipinapalagay ng halimbawang ito na mayroon kang dalawang server na tumatakbo sa Ubuntu 18.04, na maaaring makipag-usap sa bawat isa sa isang pribadong network. Kung ang iyong hosting provider ay hindi nag-aalok 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.190 Slave IP: 192.168.121.236

I-install ang MySQL

Ang default Ang Ubuntu 18.04 repositori ay may kasamang MySQL bersyon 5.7. Upang maiwasan ang anumang mga isyu, pinakamahusay na mag-install ng parehong bersyon ng MySQL sa parehong mga server.

I-install ang MySQL sa Master server:

sudo apt-get update sudo apt-get install mysql-server

I-install ang MySQL sa server ng Slave gamit ang parehong mga utos:

sudo apt-get update sudo apt-get install mysql-server

I-configure ang Master Server

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

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

Upang gawin ito buksan ang MySQL configuration file at uncomment o itakda ang sumusunod:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf master: /etc/mysql/mysql.conf.d/mysqld.cnf

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

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

sudo systemctl restart mysql

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

sudo mysql

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.236' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; 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: 629 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

Pansinin ang pangalan ng file, 'mysql-bin.000001' at Posisyon '629'. 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/mysql/mysql.conf.d/mysqld.cnf alipin: /etc/mysql/mysql.conf.d/mysqld.cnf

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

I-restart ang serbisyo ng MySQL:

sudo systemctl restart mysql

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:

sudo mysql

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.190', CHANGE MASTER TO MASTER_HOST='192.168.121.190', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=629;

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:

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

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

ubuntu mysql mariadb