Importul și exportul bazelor de date în MySQL utilizând linia de comandă
Gestionarea backup-urilor și migrărilor bazelor de date este o sarcină esențială pentru orice administrator de baze de date MySQL. Folosind linia de comandă, puteți exporta cu ușurință baze de date în fișiere de backup sau le puteți importa într-un mediu nou. Acest ghid acoperă modul de a importa și exporta baze de date în MySQL utilizând linia de comandă.
Condiții prealabile
Înainte de a începe, asigurați-vă că:
- MySQL este instalat și rulează pe serverul dvs. sau pe mașina locală.
- Aveți acces la un terminal sau la o linie de comandă.
- Aveți acreditările MySQL necesare, inclusiv numele de utilizator și parola.
Exportul bazelor de date cu mysqldump
Utilitarul mysqldump este instrumentul standard pentru exportul bazelor de date în MySQL. Acesta creează un fișier .sql care conține instrucțiunile SQL necesare pentru recrearea bazei de date.
1. Exportarea unei singure baze de date
Pentru a exporta o singură bază de date, utilizați următoarea sintaxă:
mysqldump -u [nume utilizator] -p [nume_bază_de_date] > [nume fișier].sql
- -u [nume utilizator]: Numele de utilizator MySQL.
- -p: Solicită parola MySQL.
- [database_name]: Numele bazei de date pe care doriți să o exportați.
- [filename].sql: Numele fișierului de ieșire care va conține copia de rezervă a bazei de date.
Exemplu:
Această comandă va solicita parola utilizatorului root și va crea un fișier numit mydatabase_backup.sql care conține toate datele și structura mydatabase.
2. Exportul mai multor baze de date
Pentru a exporta mai multe baze de date, utilizați indicatorul –databases urmat de numele bazelor de date:
mysqldump -u [username] -p --databases [database1] [database2] > [filename].sql
Exemplu:
mysqldump -u root -p --databases db1 db2 > multiple_databases_backup.sql
Această comandă va exporta atât db1, cât și db2 în multiple_databases_backup.sql.
3. Exportați toate bazele de date
Pentru a exporta toate bazele de date de pe serverul MySQL, utilizați opțiunea –all-databases:
mysqldump -u [nume utilizator] -p --all-databases > all_databases_backup.sql
Exemplu:
mysqldump -u root -p --all-databases > all_databases_backup.sql
Aceasta creează o copie de rezervă completă a tuturor bazelor de date în all_databases_backup.sql.
4. Exportați numai structura tabelelor (fără date)
Dacă aveți nevoie doar de structura tabelelor, fără date, adăugați indicatorul –no-data:
mysqldump -u [nume utilizator] -p --no-data [nume_baza_de_date] > structure_only.sql
Exemplu:
mysqldump -u root -p --no-data mydatabase > structure_only.sql
5. Export de tabele specifice
Pentru a exporta anumite tabele dintr-o bază de date, listați-le după numele bazei de date:
mysqldump -u [nume utilizator] -p [nume_bază_de_date] [tabel1] [tabel2] > [nume_fișier].sql
Exemplu:
mysqldump -u root -p mydatabase table1 table2 > tables_backup.sql
Importul bazelor de date cu mysql
Pentru a importa o bază de date dintr-un fișier SQL, utilizați comanda mysql.
1. Importarea unei singure baze de date
Pentru a importa un fișier SQL într-o bază de date MySQL, utilizați următoarea comandă:
mysql -u [nume utilizator] -p [nume_bază_de_date] < [nume fișier].sql
- -u [nume utilizator]: Numele de utilizator MySQL.
- -p: Solicită parola MySQL.
- [database_name]: Numele bazei de date în care vor fi importate datele.
- [filename].sql: Numele fișierului .sql care urmează să fie importat.
Exemplu:
mysql -u root -p mydatabase < mydatabase_backup.sql
Această comandă va solicita parola utilizatorului root și va importa conținutul mydatabase_backup.sql în mydatabase.
2. Import într-o bază de date nouă
Dacă doriți să importați într-o bază de date nouă, trebuie mai întâi să creați baza de date și apoi să importați fișierul .sql.
Pasul 1: Creați o nouă bază de date.
mysql -u [nume utilizator] -p -e "CREATE DATABASE [new_database_name];"
Pasul 2: Importați fișierul .sql în noua bază de date.
mysql -u [nume utilizator] -p [nume_nou_bază_de_date] < [nume_fișier].sql
Exemplu:
mysql -u root -p -e "CREATE DATABASE newdatabase;"
mysql -u root -p newdatabase < mydatabase_backup.sql
3. Importați toate bazele de date
Dacă ați salvat toate bazele de date folosind –all-databases, le puteți importa înapoi folosind:
mysql -u [nume utilizator] -p < all_databases_backup.sql
Exemplu:
mysql -u root -p < all_databases_backup.sql
Această comandă va restaura toate bazele de date conținute în fișierul all_databases_backup.sql.
Sfaturi pentru utilizarea mysqldump și mysql
- Utilizați compresia: Pentru a economisi spațiu pe disc și timp de transfer, puteți comprima fișierul de backup utilizând gzip:
mysqldump -u root -p mydatabase | gzip > mydatabase_backup.sql.gz
Și pentru a-l importa:
gunzip < mydatabase_backup.sql.gz | mysql -u root -p mydatabase
- Verificarea bazei de date înainte de import: Asigurați-vă că baza de date în care importați este goală sau conține date compatibile pentru a evita conflictele.
- Verificați setul de caractere: Dacă aveți de-a face cu caractere non-ASCII, asigurați-vă că exportați și importați cu setul de caractere corect utilizând opțiunea –default-character-set:
mysqldump -u root -p --default-character-set=utf8 mydatabase > mydatabase_backup.sql
- Gestionarea erorilor: Dacă întâmpinați erori în timpul importului, verificați dacă există probleme comune precum baze de date sau structuri de tabele lipsă și asigurați-vă că fișierul .sql este complet.
Rezumat
Exportul și importul bazelor de date MySQL utilizând linia de comandă este simplu cu mysqldump și mysql. Aceste instrumente permit flexibilitate în gestionarea backup-urilor, migrarea bazelor de date între servere și crearea de exporturi specifice numai structurii sau datelor. Prin înțelegerea comenzilor și a opțiunilor acestora, puteți asigura funcționarea fără probleme a bazelor de date și menținerea integrității datelor în timpul transferurilor.