Export, import și mutarea unei baze de date MySQL cu phpMyAdmin

Tipărire
  • 1

Pe scurt: phpMyAdmin din cPanel vă lasă să salvați o bază de date MySQL într-un fișier (export) și să încărcați un fișier într-o bază (import), direct din browser, fără programe instalate pe calculator. Mutarea unei baze pe alt server înseamnă exact aceste două operații, plus un al treilea pas: schimbați în configurarea site-ului datele de acces la baza nouă.

Unde găsiți phpMyAdmin

  1. Intrați în cPanel. Îl puteți deschide și din zona de client, de la Serviciile mele, alegând pachetul de găzduire.
  2. În secțiunea Databases apăsați phpMyAdmin. Instrumentul se deschide într-o filă nouă.
  3. În coloana din stânga vedeți toate bazele de date ale contului. Numele lor încep cu numele de utilizator cPanel urmat de liniuță jos, de exemplu utilizator_magazin.

Înainte de a muta o bază de date

  • Opriți modificările. Comenzile, comentariile sau înregistrările făcute după export nu vor ajunge pe serverul nou. Pentru un magazin sau un site cu mult trafic activați modul de mentenanță ori alegeți o oră liniștită.
  • Păstrați originalul. Nu ștergeți baza de pe serverul vechi până când site-ul nu a funcționat fără probleme câteva zile pe cel nou.
  • Mutați tot site-ul? Fișierele, e-mailul și DNS-ul au pașii lor, descriși în articolul mutarea site-ului la TopHost. Aici este vorba doar despre baza de date.

Pasul 1. Exportați baza de date

Din phpMyAdmin

  1. În stânga, faceți clic pe numele bazei. Se afișează lista tabelelor ei.
  2. Deschideți fila Export din bara de sus.
  3. Alegeți metoda:
    • Quick: exportă toată baza cu setările standard. Este alegerea potrivită în majoritatea cazurilor.
    • Custom: vă lasă să bifați doar anumite tabele, să alegeți setul de caractere sau să comprimați fișierul.
  4. La Format lăsați SQL, dacă fișierul va fi importat din nou într-o bază MySQL.
  5. Apăsați Export (în unele versiuni butonul se numește Go). Browserul descarcă un fișier .sql.

Sfat: la o bază mare, alegeți Custom și, la compresie, varianta gzipped sau zipped. Fișierul rezultat este de câteva ori mai mic și se descarcă și se încarcă mai repede.

Din linia de comandă

Dacă aveți acces SSH pe serverul vechi, comanda de mai jos cere parola și scrie direct o copie arhivată:

mysqldump -u old_user -p old_database | gzip > database.sql.gz

Indiferent de metodă, deschideți începutul fișierului într-un editor de text și verificați că el conține rânduri CREATE TABLE și INSERT, nu o pagină de eroare.

Pasul 2. Pregătiți baza de destinație

Importul se face într-o bază care există deja în cont. Dacă nu o aveți, în cPanel deschideți MySQL Databases, creați baza și un utilizator, apoi acordați utilizatorului toate drepturile (ALL PRIVILEGES) asupra bazei. Pașii detaliați sunt în crearea unei baze de date MySQL în cPanel. Notați numele bazei, numele utilizatorului și parola exact cum le afișează cPanel, cu prefixul contului inclus.

Baza trebuie să fie goală. Dacă importați peste o bază care are deja tabele, faceți întâi un export al ei, ca rezervă.

Pasul 3. Importați fișierul

Din phpMyAdmin

  1. Selectați în stânga baza în care vreți să importați datele.
  2. Deschideți fila Import.
  3. Apăsați Choose File (sau Browse) și alegeți fișierul de pe calculator. Sunt acceptate fișiere .sql și arhive .sql.gz sau .sql.zip.
  4. Lăsați formatul SQL și celelalte opțiuni neschimbate, dacă nu aveți un motiv anume.
  5. Coborâți la capătul paginii și apăsați Import. Așteptați mesajul verde de confirmare înainte să închideți fila.

Dacă fișierul este prea mare pentru browser

Lângă câmpul de alegere a fișierului, phpMyAdmin arată dimensiunea maximă acceptată. Dacă fișierul o depășește, aveți trei variante, în această ordine:

  1. Comprimați fișierul și încercați din nou: o arhivă .sql.gz este de câteva ori mai mică.
  2. Importați prin SSH sau din Terminal în cPanel (vedeți conectarea la server prin SSH). Încărcați întâi fișierul în cont, apoi rulați:
    gunzip < database.sql.gz | mysql -u cpuser_dbuser -p cpuser_dbname
  3. Cereți ajutorul suportului. Încărcați fișierul în cont prin File Manager sau FTP și deschideți un tichet, indicând calea fișierului și numele bazei în care trebuie importat.

Pasul 4. Actualizați configurarea site-ului

După o mutare, fișierul de configurare al site-ului păstrează încă datele vechi. Înlocuiți numele bazei, utilizatorul și parola cu cele noi și puneți ca server localhost. La WordPress fișierul este wp-config.php:

define( 'DB_NAME', 'cpuser_dbname' );
define( 'DB_USER', 'cpuser_dbuser' );
define( 'DB_PASSWORD', 'parola setată de dvs.' );
define( 'DB_HOST', 'localhost' );

Unde păstrează aceste valori Joomla, OpenCart, PrestaShop și alte platforme găsiți în articolul datele de conectare MySQL.

Pasul 5. Testați înainte de a schimba DNS-ul

Puteți deschide site-ul pe serverul nou încă înainte ca domeniul să fie îndreptat acolo, modificând fișierul hosts de pe calculator, cum se arată în accesul la site înainte de delegarea domeniului. Verificați pagina principală, câteva pagini interioare, autentificarea în panoul de administrare și formularele. Dacă odată cu mutarea se schimbă și numele domeniului, WordPress ține adresa veche și în baza de date, deci trebuie înlocuită și acolo.

Erori frecvente și ce înseamnă

Eroare sau simptomCauzaCe faceți
#1046 No database selectedNu ați ales nicio bază în stânga înainte de importSelectați baza, apoi reluați importul din fila Import a ei
#1050 Table already existsBaza de destinație conține deja tabele cu aceleași numeExportați conținutul actual ca rezervă, apoi goliți baza sau folosiți una nouă și importați din nou
#1044 Access denied la CREATE DATABASEFișierul încearcă să creeze sau să folosească o bază cu alt numeȘtergeți din fișier liniile CREATE DATABASE și USE (sau exportați din nou fără ele), apoi importați în baza selectată
Unknown collation: 'utf8mb4_0900_ai_ci'Fișierul vine de pe MySQL 8, iar destinația folosește o versiune de server de baze de date care nu cunoaște această colaționareÎnlocuiți în tot fișierul utf8mb4_0900_ai_ci cu utf8mb4_unicode_ci, într-un editor care deschide fișiere mari, și importați din nou într-o bază goală
Access denied; you need (at least one of) the SUPER privilege(s)Vederile, triggerele sau procedurile din fișier au un DEFINER cu utilizatorul de pe serverul vechiȘtergeți din fișier părțile DEFINER=`...`@`...` sau exportați din nou fără definer
Semne de întrebare sau simboluri ciudate în locul literelorExportul și importul au folosit seturi de caractere diferiteExportați din nou cu utf8mb4 și importați cu aceeași setare
„Error establishing a database connection”Date greșite în fișierul de configurare sau utilizatorul nu are drepturi asupra bazeiComparați literă cu literă numele și parola cu cele din cPanel (datele de conectare) și verificați că utilizatorul este adăugat la bază

Articole utile

Răspunsul a fost util?