Android

Kako konfigurirati mysql master

MySQL Tutorijali - 3 - Instalacija MySQL Servera

MySQL Tutorijali - 3 - Instalacija MySQL Servera

Sadržaj:

Anonim

Umnožavanje MySQL postupak je koji vam omogućuje automatsko kopiranje podataka s jednog poslužitelja baze podataka na jedan ili više poslužitelja.

MySQL podržava brojne topologije replikacije s tim da je topologija Master / Slave jedna od najpoznatijih topologija u kojima jedan poslužitelj baze podataka djeluje kao master, dok jedan ili više poslužitelja djeluju kao robovi. Replikacija je prema zadanom asinkrona gdje master šalje događaje koji opisuju izmjene baze podataka u svoj binarni dnevnik i robovi zahtijevaju događaje kada su spremni.

U ovom ćemo udžbeniku objasniti kako postaviti MySQL Master / Slave replikaciju s jednim glavnim i jednim podređenim poslužiteljem na CentOS 7. Isti koraci vrijede i za MariaDB.

Ova vrsta topologije replikacije najprikladnija je za razmještanje čitkih replika za skaliranje čitanja, izradu sigurnosnih kopija baza podataka za oporavak od katastrofe i za analitičke poslove.

Preduvjeti

U ovom primjeru pretpostavljamo da imate dva poslužitelja sa sustavom CentOS 7 koji mogu međusobno komunicirati preko privatne mreže. Ako vaš pružatelj hosting usluga ne pruža privatne IP adrese, možete koristiti javne IP adrese i konfigurirati svoj vatrozid tako da dopušta promet na priključku 3306 samo iz pouzdanih izvora.

Poslužitelji u ovom primjeru imaju sljedeće IP adrese:

Master IP: 192.168.121.59 Slave IP: 192.168.121.14

Instalirajte MySQL

Zadana CentOS 7 spremišta ne uključuju MySQL pakete, tako da ćemo instalirati MySQL iz njihovog službenog Yum Repository. Da ne bi došlo do problema, na oba poslužitelja instalirat ćemo istu MySQL verziju 5.7.

Instalirajte MySQL na Master i Slave servere:

sudo yum localinstall sudo yum install mysql-community-server

Nakon instalacije dovršite, pokrenite MySQL uslugu i omogućite je da se automatski pokrene pri pokretanju pomoću:

sudo systemctl enable mysqld sudo systemctl start mysqld

Kada se MySQL poslužitelj pokrene prvi put, generira se privremena lozinka za korisnika MySQL korijena. Za pronalaženje lozinke koristite sljedeću grep naredbu:

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

Pokrenite naredbu mysql_secure_installation da biste postavili novu root lozinku i poboljšali sigurnost MySQL instancije:

mysql_secure_installation

Unesite privremenu lozinku i odgovorite Y (da) na sva pitanja.

Nova lozinka mora biti dugačka najmanje 8 znakova i sadržavati najmanje jedno veliko slovo, jedno malo slovo, jedan broj i jedan poseban znak.

Konfigurirajte glavni poslužitelj

Prvo ćemo konfigurirati glavni MySQL poslužitelj i izvršiti sljedeće promjene:

  • Postavite MySQL poslužitelj da sluša na privatnom IP.Postavite jedinstveni ID poslužitelja. Omogućite binarno vođenje zapisnika.

Da biste to učinili, otvorite MySQL konfiguracijsku datoteku i dodajte sljedeće retke u odjeljak:

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

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

Nakon završetka, ponovno pokrenite MySQL uslugu da bi promjene stupile na snagu

sudo systemctl restart mysqld

Sljedeći je korak stvaranje novog korisnika replikacije. Prijavite se na MySQL poslužitelj kao korijenski korisnik:

mysql -uroot -p

Iznutra unutar MySQL upita, pokrenite sljedeće SQL upite koji će stvoriti korisnika replica i dodijeliti privilegiju REPLICATION SLAVE korisniku:

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

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14'; Obavezno promijenite IP adresu s slave IP adrese. Možete imenovati korisnika kako želite.

Dok ste još u MySQL upita, izvršite sljedeću naredbu koja će ispisati naziv binarne datoteke i položaj.

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)

Uzmite u obzir naziv datoteke, 'mysql-bin.000001' i poziciju '1427'. Te će vam vrijednosti trebati prilikom konfiguriranja podređenog poslužitelja. Te će se vrijednosti vjerojatno razlikovati na vašem poslužitelju.

Konfigurirajte Slave Server

Kao i za glavni nadređeni poslužitelj, napravit ćemo sljedeće promjene u podređenom poslužitelju:

  • Postavite MySQL poslužitelj da sluša na privatnom IPSet jedinstvenom poslužitelju IDEnable binarnu evidenciju

Otvorite MySQL konfiguracijsku datoteku i uredite sljedeće retke:

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

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

Ponovo pokrenite MySQL uslugu:

sudo systemctl restart mysqld

Sljedeći korak je konfiguriranje parametara koje će podređeni poslužitelj koristiti za spajanje na glavni poslužitelj. Prijavite se u MySQL školjku:

mysql -uroot -p

Prvo zaustavite robove robova:

STOP SLAVE;

Pokrenite sljedeći upit koji će postaviti pomoćnik da replicira 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;

Obavezno koristite ispravnu IP adresu, korisničko ime i lozinku. Naziv i položaj datoteke zapisa moraju biti isti kao vrijednosti koje ste dobili s glavnog poslužitelja.

Kada završite, započnite niti s robovima.

START SLAVE;

Testirajte konfiguraciju

U ovom trenutku, trebali biste imati ispravnu instalaciju Master / Slave.

Da bismo provjerili radi li sve kako je i očekivano, stvorit ćemo novu bazu podataka na glavnom poslužitelju:

mysql -uroot -p

CREATE DATABASE replicatest;

Prijavite se u slave MySQL školjke:

mysql -uroot -p

Pokrenite sljedeću naredbu za popis svih baza podataka:

SHOW DATABASES;

Primijetit ćete da se baza podataka koju ste stvorili na glavnom poslužitelju replicira na slave:

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

Zaključak

U ovom smo vodiču pokazali kako kreirate MySQL Master / Slave replikaciju na CentOS 7.

Slobodno ostavite komentar ako imate bilo kakvih pitanja.

centos mysql mariadb