Configurarea bazei de date MySQL de replicare
Este întotdeauna despre date. Care este utilizarea de orice sistem, fără a se bazează pe datele pe care le?
Înfiinţarea unei baze de date de replicare este unul dintre mulţi paşi care ar trebui să fie luate în scopul de a păstra datele, a preveni orice pierderi şi de a face mai uşor de recuperare după dezastre.
Din fericire, este usor cu MySQL. Deci, haideţi să presupunem că avem două servere care rulează MySQL, unul numita host1 şi alte host2.
Replicarea poate fi maestru-master sau master-slave. Cu o replicare stapan-sclav, sclavul întotdeauna ceea ce reproduce baza de date master este de executare. În master-maestru replicare, ambele baze de date sincroniza cu unii faţă de alţii.
În scopul acestui tutorial, un master-slave (aici host1 şi, respectiv, host2) scenariu este examinat.
Mai întâi de toate, deschideţi fişierul de configurare MySQL pe host1 (de obicei se găsesc în / etc / my.cnf pe Linux, şi c: \ windows \ my.ini pe ferestre), şi decomentaţi (eliminarea hash a) următoarea linie:
# Skip-networking
În al doilea rând, trebuie să specificaţi fişierul în cazul în care comandantul (host1) ar trebui să log (scriere) interogări este de executare. Acest lucru va permite slave (host2) pentru a citi aceste întrebări şi le execute, de asemenea. Ca atare, adăugaţi o linie, cum ar fi:
log-bin = / calea / catre / mysql-bin.log
în cazul în care valoarea de mai sus este calea de la dosar în cazul în care MySQL ar trebui sa faca logare. Ai putea foarte bine să creaţi un director separat sau utilizează directorul implicit de instalare mysql (cum ar fi c: \ Program Files \ MySQL \ pe Windows sau / var / lib / mysql pe linux)
Apoi, trebuie să specificaţi numele bazei de date în cauză. Deci, dacă sunteţi de înfiinţare replicarea pentru una din bazele de date MySQL numita "work_data", apoi, aceasta este linia pe care trebuie să le adăugaţi la configurare MySQL:
binlog-do-db = work_data
În cele din urmă, va trebui să specificaţi un ID de server, care spune că aceasta este serverul master
server-id = 1
Salvaţi fişierul de configurare şi de ieşire.
Acum aveţi nevoie pentru a da host2 permisiunea de a reproduce datele. Ca atare, o interogare MySQL trebuie să fie emis la master.
Astfel, pe host1, logati pentru a promptul MySQL (mysql-u root-pyour_root_password) (sau PHPMyAdmin, etc ... orice aţi folosi), şi emite următoarea declaraţie:
subvenţie slave de replicare pe *.* spre ''@'%' numele de utilizator identificate prin "parola";
Asiguraţi-vă că pentru a înlocui numele de utilizator şi parola, cu o acreditare de alegerea ta. Nu păstraţi ghilimele simple, deşi.
Semnul% inseamna ca sclav se poate conecta la orice gazdă. Dacă doriţi ca acesta să fie mai sigur, să le înlocuiască cu host2 (de sclav numele gazdei).
După toate cele de mai sus se face, reporniţi serviciul MySQL (serviciu de mysqld restart (linux) sau, mysql net stop, net start mysql (pe geamuri)).
Dacă baza de date a datelor mai devreme, asiguraţi-vă că-l cu basculante şi încărcaţi-l pe slave înainte de a face oricare dintre cele de mai sus. Detalii de dumping este uşor şi se poate face prin cd'ing în directorul bin MySQL şi emitent:
mysqldump-Q-u root-pyour_root_password databasename> database_dump.sql
(Înlocuiţi parola şi numele bazei de date cu conectare corecte). Întreaga bază de date va fi acum în fişierul numit database_dump.sql
Pentru a se importa pe host2, CD-ul în directorul bin mysql şi emite:
mysql-u root-pyour_root_password databasename </ calea / catre / / fisierul / database_dump.sql
Fişier de configurare MySQL pe host2 ar trebui să aibă următoarele linii:
server-id = 2
master-gazdă = host1
master-user = nume de utilizator
master-password = parola
master-port = 3306
în cazul în care este host1 master hostname / IP, şi numele de utilizator şi parola sunt acreditări aţi utilizat la acordarea accesului replicare câţiva paşi de mai sus. 3306 este portul MySQL functioneaza pe baza (care este implicit)
Apoi, începe procesul de sclav pe host2 prin emiterea de la prompt MySQL:
începe slave;
Pentru a vă replicarea-vă că este de lucru, emite următorul text interogare SQL pe host1:
statutul de sclav arată \ G
(Slave_SQL_Running şi Slave_IO_Running ar trebui să raporteze "Da")
Noroc

Avantajos, doar ceea ce am nevoie. Acum ... Este posibil să se stabilească mai multe dispozitive Master pentru a reproduce în Server Slave doar unul?. Eu cer acest lucru, deoarece im încercarea de a înfiinţa un topologie Active-standby, în care, dacă una dintre masterat se sustrage, ar putea fi inlocuit temporar de server Slave. Mulţumiri
Buna Robert,
Ce zici de exploatare a serviciilor de mai multe MySQL pe gazdă sclav? Fiecare ar fi difuzate pe un port diferit şi ar fi dependentă de un maestru diferite.
Asta Genius! , Cu toate că voi avea de a schimba modul în care utilizatorii se conectează la baza de date pentru a face o tranziţie lină în caz de eşec.
Ai putea seta un locală de servicii DNS, si sa faca utilizatorii folosesc un nume de gazdă (în cazurile normale subliniind comandantului) pentru a accesa Dvs. de servicii.
În caz de eşec, pur şi simplu vă modificaţi înregistrarea DNS de nume de gazda, care la punctul la maşină slave.
Utilizatorii nu ar observa schimba dacă schimbaţi IP care rezolvă numele de gazdă pentru.
[...] Face posibilă pentru a adăuga sau elimina nodurile din cluster, fără a fi nevoie să clients.Tips reconfigura şi trucuri Configurarea bazei de date MySQL replicationSo haideţi să presupunem că avem două servere care rulează MySQL, unul numita host1 şi alte host2. ... Dacă [...]
Am citit câteva din articolele de pe site-ul dvs. acum, şi imi place foarte mult stilul tau de blogging. L-am adăugat la lista mea de blog-ul site-ului favorite şi vor fi verificarea întorc cât de curând. Vă rugăm să verificaţi site-ul meu, precum şi să-mi spuneţi ce credeţi.
suppliments naturale