Ce este mysqldump și cum îl folosesc?
Ca unul dintre cele mai importante disponibile gratuit baze de date, MySQL este o alegere populară pentru multe aplicații web. Fiind expusă la internet, aplicația dvs. este expusă la atacuri rău intenționate. Dacă serverul dvs. este compromis, în cel mai bun caz, trebuie să reinstalați aplicația; în cel mai rău caz, s-ar putea să vă pierdeți datele. În plus, este posibil să ajungeți într-o situație în care trebuie să migrați o bază de date de la un server la altul.
Pentru ce este folosit mysqldump?
Instrumentul mysqldump v-a acoperit atât pentru situațiile de compromitere a serverului, cât și pentru situații de migrare. Funcția sa de bază este de a lua o bază de date MySQL și de a o arunca ca fișier text. Dar nu orice fișier text; fișierul este un set de instrucțiuni SQL. Aceste instrucțiuni, atunci când sunt executate, reconstruiesc baza de date la starea precisă în care se afla atunci când a fost executată dump-ul.
Utilizați mysqldump pentru a crea exporturi ale unei baze de date ca copii de siguranță sau când mutați baza de date pe o nouă gazdă. În ambele cazuri, fișierul text va fi importat înapoi într-un server de baze de date MySQL. Acesta va executa toate instrucțiunile SQL din fișier, care reconstruiește baza de date la starea inițială. Această parte nu folosește comanda mysqldump, dar nici fără acest utilitar nu ar fi posibil.
The Documentele MySQL listează alte metode de a face copii de rezervă, dar acestea au dezavantaje:
- Copierea la cald a unei baze de date din MySQL Enterprise este o modalitate excelentă de a realiza aceste copii de rezervă - dacă nu vă deranjează prețul Enterprise.
- Copierea directoarelor de date ale bazei de date poate fi dificilă atunci când vă mutați între sisteme de operare, deoarece destinațiile vor fi diferite.
- Exportul într-un fișier text delimitat vă va oferi conținutul, dar va trebui să recreați structura.
- Puteți adesea să faceți backup pentru baze de date din programe GUI, cum ar fi MySQL Workbench. Dar acesta este un proces manual; nu este ceva ce puteți să scrieți sau să includeți într-o lucrare în lot.
Instalați instrumentul mysqldump
Pentru Windows, verificați instrucțiunile noastre către instalați MySQL pe Windows 7 (procesul de instalare este același pentru Windows 10). Pe macOS, vedeți instrucțiunile noastre către instalați MySQL pe macOS 10.7 (din nou, mai vechi, dar încă aplicabil). Utilizatorii de Sisteme Linux bazate pe Ubuntu poate folosi următoarea comandă pentru a instala clientul MySQL și utilitățile:
sudo apt install mysql-client.
Extrageți un Dump MySQL
Odată instalat, utilizați mysqldump pentru a obține o copie de rezervă completă a unei baze de date.
mysqldump -h [numele sau IP-ul gazdei dvs. DB] -u [numele utilizatorului DB] -p [numele bazei de date] > db_backup.sql.
Iată o descriere a steagurilor utilizate în această comandă:
- -h: Acest steag este gazda bazei de date. Poate fi un nume de gazdă complet (de exemplu, gazda mea.domeniu.com) sau o adresă IP. Lăsați necompletat dacă executați comanda pe aceeași gazdă cu serverul MySQL.
- -u: Nume de utilizator.
- -p: Dacă ați securizat corect instalarea MySQL, veți avea nevoie de o parolă pentru a vă conecta. Acest flag fără argument vă solicită o parolă atunci când executați comanda. Uneori este util să furnizați parola direct ca argument pentru acest flag, de exemplu, într-un script de rezervă. Dar la prompt, nu ar trebui, deoarece dacă cineva a obținut acces la computerul dvs., ar putea obține această parolă în istoricul comenzilor.
- > db_backup.sql: Această parte îi spune mysqldump să-și direcționeze rezultatul către un fișier. În mod normal, comanda trimite totul către consolă, ceea ce înseamnă că veți vedea mai multe instrucțiuni SQL pe ecran. Simbolul > canalizează rezultatul în fișierul text numit. Dacă acest fișier nu există, este creat automat.
Când este terminat, veți avea un fișier .SQL. Acesta este un fișier text care conține instrucțiuni SQL. Îl puteți deschide în orice editor de text pentru a inspecta conținutul. Iată un export dintr-o bază de date WordPress care arată cum sunt adunate aceste fișiere.

Dosarul este împărțit în secțiuni. Prima secțiune stabilește tabelul pentru comentariile WordPress. A doua secțiune recreează conținutul din acele tabele (în acest exemplu, înregistrările comentariilor). Când reimportați dump-ul MySQL, comanda funcționează prin fișier, execută instrucțiunile și reconstruiește baza de date așa cum a fost.
Importați un fișier de descărcare MySQL
Înainte de a importa fișierul dump, veți avea nevoie de o bază de date deja creată și de numele de utilizator și parola valide. De asemenea, ar trebui să aveți toate permisiunile pentru baza de date. Nu aveți nevoie de permisiunea GRANT, dar este mai ușor să le acordați pe toate.
Află mai multe despre permisiunile bazei de date înainte de a schimba rolurile de securitate în baza de date.
Pentru a vă reimporta datele, conectați-vă la serverul MySQL cu mysql comanda. Tip utilizați [numele bazei de date] la prompt și înlocuiți numele bazei de date. introduce sursa [nume fișier], și înlocuiți numele fișierului de descărcare pe care l-ați preluat anterior.
Când ați terminat, apare o listă de mesaje care notează că instrucțiunile SQL se execută. Fii atent la erori, dar dacă ai permisiunile potrivite, ar trebui să fii bine.

Când procesul este finalizat, veți avea un duplicat al bazei de date inițiale. Pentru a verifica similitudinea dintre bazele de date, efectuați un alt dump, apoi comparați cele două rezultate. Utilizați un editor de text sau un instrument de diferențiere dedicat pentru a compara cele două fișiere.

Există două diferențe între aceste fișiere, așa cum sunt reprezentate de linii roșii în partea de sus și de jos a barei de derulare din dreapta. Prima este linia care conține numele bazei de date și aceasta este diferită deoarece fișierele au fost denumite diferit. Al doilea este marcajul de timp pentru fișierul dump. Acest lucru este diferit deoarece a doua bază de date a fost recreată după prima. În rest, fișierele sunt exact aceleași, adică bazele de date care le-au generat sunt și ele.
FAQ
-
Cum remediați eroarea mysqldump: Acces refuzat când utilizați tabelele de blocare?
Solicitați administratorului bazei de date să vă acorde privilegiul LOCK. Dacă acest lucru nu rezolvă problema, încercați să rulați aceeași comandă mysqldump adăugând --tranzacție unică steag, cum ar fi [$ mysqldump--tranzacție unică] [-uutilizator] [-pDBNAME ] > backup.sql.
-
Puteți folosi o clauză „where” cu mysqldump?
Utilizați o clauză WHERE atunci când creați o copie de rezervă care include numai rândurile care îndeplinesc condiția dată. De exemplu, pentru a descărca datele numai din rândurile cu coloana ID mai mare de 100, introduceți „mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql".