Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Erori
  • Ghid de referință MySQL. Dump-ul bazei de date - blogul codificatorului

Ghid de referință MySQL. Dump-ul bazei de date - blogul codificatorului

Acest articol poate fi util dacă aveți un site web care utilizează un sistem de gestionare a conținutului (Joomla, WordPress, OpenCart etc.) și decideți mutați-l pe alt server. Acest lucru necesită nu numai transferul fișierelor site-ului, ci și transferul fișierelor . Înainte de a începe să migrați site-ul dvs., trebuie să găsiți unul bun și să îl comandați pentru a obține acces la noul dvs. cont de găzduire. Noi, de exemplu, oferim Joomla și PrestaShop separate. Dacă doriți să vă mutați site-ul la un nume nou și aveți nevoie, faceți-vă timp. Planul nostru gazduire virtuala S4 vă va oferi un domeniu cadou. Dacă găzduirea partajată nu este suficientă pentru site-ul dvs., puteți comanda oricând VPS sau .

Pentru a transfera o bază de date, trebuie mai întâi să creați un dump al acesteia, adică să plasați conținutul într-un fișier SQL separat. Acest lucru se face în meniu phpMyAdmin pe găzduirea de unde transferați site-ul. Conectați-vă la phpMyAdmin, selectați baza de date care trebuie transferată în stânga și faceți clic pe „ Export» în meniul de sus.

Se va deschide o casetă de dialog în care trebuie să selectați tipul baze de date SQL, apoi apăsați butonul Bine. Așteptați până când fișierul bazei de date este descărcat pe computer.

Acum acest fișier trebuie să fie corect plasat pe găzduirea noastră. Pentru a face acest lucru, trebuie mai întâi să creați o bază de date Date MySQLîn contul dvs. cPanel, adăugând un utilizator la acesta și atribuindu-i privilegii. Mai jos descriem cum să creați o bază de date în MySQL.

Accesați cPanel și găsiți secțiunea " Bază de date", Selectați "".

Se va deschide o nouă fereastră. La pasul 1, introduceți un nume de bază de date. Vă rugăm să rețineți că numele bazei de date va fi întotdeauna prefixat; prima jumătate a numelui va conține numele contului cPanel.

După ce ați introdus numele, faceți clic pe „ Urmatorul pas».

La pasul 2 trebuie să creați utilizator MySQL la baza de date și setați o parolă pentru aceasta. După ce ați introdus toate datele, faceți clic pe " Creați un utilizator».

Când setați privilegiile utilizatorului creat, selectați opțiunea " TOATE DREPTURILE" și treceți la pasul următor.

Dacă totul a fost făcut corect în pașii anteriori, Expertul bazei de date vă va anunța că crearea bazei de date pe găzduire a fost finalizată cu succes.

Acum puteți găsi baza de date creată în lista celor disponibile baze de date MySQLîn meniul panoului de control cu ​​același nume.

Acum, pentru a restaura baza de date MySQL, importăm în baza de date creată conținutul fișierului salvat din vechea găzduire cu extensia .sql. Pentru a face asta pe pagina principala cPanel selectați elementul de meniu „ phpMyAdmin” în aceeași secțiune ” Bază de date" În fereastra care se deschide, selectați baza de date nou creată din meniul din stânga și faceți clic pe fila „ Import» în meniul de sus.

Faceți clic pe butonul Alege fișierul", în caseta de dialog, selectați fișierul sql salvat anterior și încărcați-l în găzduire. Asigurați-vă că tipul de codificare este utf-8. După ce faceți clic pe OK, așteptați un mesaj care indică faptul că importul bazei de date a avut succes.

În acest moment, toți pașii necesari pentru a transfera baza de date în alta au fost finalizați.

Ideea articolului este de a crea un ghid de înaltă calitate pentru instalarea și lucrul cu programul mysqldump. Folosind multe exemple și adunând totul opțiuni utileși parametrii pentru lucrul cu acest utilitar. Este dificil să încadrezi totul într-un singur articol, așa că totul va fi scurt și la obiect. Dacă cineva înțelege greșit ceva, vă rugăm să comentați articolul.

Secțiuni:

Instalaremysqldump:

Ce este mysqldump?

MySQLdump- Acest aplicație server, care vă permite să faceți backup (denumit în continuare dump) baze de date și să le salvați într-un fișier separat. În același timp, puteți face setări flexibile de descărcare: mai multe sau toate bazele de date, arhivare în gzip, adăugarea de blocare, comenzi de drop și multe altele. Este posibil și importul invers al backup-urilor bazei de date. Se poate face cu folosind PHP, dar acest lucru este inacceptabil pentru proiecte mari, care au o pondere mare a datelor.

Acest program este foarte util în exportul și importul de date dintr-o bază de date. Poate fi instalat ca standard pe hosting (mai precis server mysql). Dar pentru a vă perfecționa abilitățile în lucrul cu mysqldump și pentru a învăța cum să îl instalați, îl puteți instala pe denwer. Asta vom face acum.

Descărcați mysqldump

Puteți descărca oricând programul mysqldump de pe site-ul nostru, iar descărcarea aplicației este complet gratuită. Descărcați mysqldump din linkul direct de mai jos.

Cum se instalează mysqldump?

Vom instala pe local Server Denwer. Instalarea aplicației este ușoară și simplă, pentru a face acest lucru, urmați instrucțiunile și capturile de ecran furnizate mai jos.

1.Copiați fișierul mysqldump.exe în folderul Denver:

D:\WebServers\usr\local\mysql5\bin\
În acest caz, este posibil să aveți un nume ușor diferit pentru folderul mysql5, de exemplu mysql-5.1 sau ușor modificat. Prin urmare, pentru o mai mare claritate, mai jos este o captură de ecran:

2. Lansați Denver

Cu siguranță tu știi cum să lansezi Denwer.


3. Lansați consola:

Start->Run->cmd.exe sau pe Windows 7: Start->Căutare->Entercmd.exe->introduce, așa cum se arată în captura de ecran:

4. Testare:

Folosind comenzile din consolă, mergi pe discul virtual Denver (am W:\) și în folderul cu aplicația mysqldump. Pentru a confirma executarea comenzii, apăsați Enter.

Introduceți comenzile:

W:- accesați discul virtual Denver

CDusr\local\mysql5\cos– accesați folderul cu aplicația

mysqldump -uroot your_db_name>file_name.sql– testarea, descărcarea unei baze de date arbitrare într-un fișier, care va fi salvat în folderul bin.

Instalarea mea a avut succes, sper să fie și a ta. În folderul bin găsim fișierul copie de rezervă DB. Pentru a afla cum să utilizați programul pe scară largă, citiți secțiunile următoare articole.

Noțiuni introductive: export și import de baze de date

Exportul bazei de date

Am instalat deja aplicația și am învățat cum să folosim consola. Am făcut deja un test dump. Acum să facem un simplu dump al bazei de date în directorul de care avem nevoie. Pentru a face acest lucru, am creat o bază de date folosită anterior numită „test”. Este situat pe serverul local denwer. Mai jos sunt furnizate comenzi pas cu pas consolă pentru descărcarea bazei de date de testare în folderul dorit și fișierul dorit.

W: cdusr\local\mysql5\bin mysqldump -uroot test>D:\test\easydump.sql

Captura de ecran de mai jos arată fișierul dump din folderul de testare:

Exportul a fost finalizat cu succes. Acum să încercăm să importăm acest fișier înapoi pe serverul nostru.

Import baze de date

Pentru a importa baza de date, ștergeți baza de date în phpmyadmin și utilizați următoarea comandă în cmd.exe:

Testul Mysql -uroot

Notă importantă: dacă la export am folosit mysqldump..., apoi la import trebuie să porniți comanda cu mysql. Acest exemplu este o utilizare de bază a aplicației mysqldump pentru a crea copii de siguranță ale bazei de date. Veți găsi și mai multe comenzi și exemple în secțiune și articol.

Exemple MySQLdump

Mai jos sunt cele mai frecvent utilizate exemple de utilizare a mysqldump. Cu care puteți nu numai să faceți copii de rezervă, ci și să adăugați câțiva parametri Rezervă copie: compresie folosind gzip, adăugarea datei de backup, descărcarea doar a câtorva tabele sau structura bazei de date, folosind setări flexibile. Aceste opțiuni vă permit să creșteți viteza de execuție a dump-ului și să utilizați spațiul pe disc cu moderație.

Crearea unei gropi

mysqldump –uUSER -h82.82.82.82 -pPASSWORD DATABASE > /path/to/file/dump.sql

-u sau --utilizator=...- Nume de utilizator

-h sau --gazdă=...- gazdă la distanță (pentru gazda locală puteți omite acest parametru)

-p sau --parola- solicitați o parolă

Bază de date- numele bazei de date exportate

/cale/la/fișier/dump.sql- cale și fișier pentru dump

Deversăm mai multe baze de date, pentru aceasta folosim atributul --databases sau –B pe scurt, vezi exemplul de mai jos:

Mysqldump -uroot -h82.82.82.82 -p -B database1 database2 database3 > databases.sql

Dacă doriți să creați un dump al tuturor bazelor de date, trebuie să utilizați parametrul –all-databases sau –A în formă prescurtată, vedeți exemplul:

Mysqldump -uroot -h82.82.82.82 -p -A > all-databases.sql

Crearea unei structuri de bază de date fără date

Pentru a face acest lucru, trebuie să utilizați parametrul --no-data așa cum se arată în exemplul de mai jos:

Mysqldump --no-data - uUSER -pPASSWORD DATABASE > /path/to/file/schema.sql

Creați un dump de doar unul sau mai multe tabele de bază de date

mysqldump -uUSER -pPASSWORD BAZĂ DE DATE TABLE1 TABLE2 TABLE3 > dump.sql

Creați un dump și arhivați-lgzip

mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz

Creați un dump cu data în numele fișierului

mysqldump -uUSER -pPASSWORD DATABASE | gzip > `data +dump.sql.%Y%m%d.%H%M%S.gz`

Folosind atribute suplimentare

mysqldump -Q -c -e -uUSER -pPASSWORD DATABASE > /path/to/file/dump.sql

După cum am menționat mai devreme, aceste atribute reduc dimensiunea finală a fișierului și accelerează procesul de backup. Mai precis:

-Q include numele în ghilimele înapoi

-c face o inserare completă, inclusiv numele coloanelor

-e realizează o inserție extinsă.

Această postare conține cele mai frecvent utilizate comenzi pentru a crea sau a implementa copii de siguranță ale bazelor de date MySQL.

Ei bine, m-am săturat să caut cheile în mod constant pe google când am nevoie „deodată” de ele.

Puțină teorie...

MySQLDUMP este un instrument care vă permite să creați copii de rezervă ale bazelor de date MySQL. Ca rezultat, obținem un fișier .sql cu un dump de bază de date. ÎN acest fișier conține cod SQL sub formă de text, adică îl poți deschide oricând editor de text pentru a vizualiza, edita etc...
Puteți restaura o astfel de descărcare folosind utilitarul mysql prin STDIN.

Apropo, există și un astfel de utilitar precum MySqlHotCopy, care este cel mai bine utilizat pentru a crea copii de rezervă la cald, deoarece blochează baza de date și copiază fișierele bazei de date în Locul potrivit. Dar acest lucru va funcționa doar dacă este rulat pe serverul în sine, funcționează doar cu tabelele MyISAM și Archive și este mai potrivit pentru bazele de date mari.
Puteți recupera datele prin copierea fișierelor salvate în directorul de date MySQL.

Dar, în general, nu este vorba despre ea... poate voi scrie despre „copie fierbinte” într-un alt articol...

Crearea unei copii de rezervă a bazei de date

Să începem cu cea mai comună comandă pentru descărcarea site-ului site.ru în fișierul site.ru:

Mysqldump -uroot -h10.30.30.10 -p site_ru > site_ru.sql

    Mai multe despre chei:
  • -u(--user=...) este numele de utilizator al bazei de date;
  • -h(—host=…) este gazda pe care se află serverul însuși. Dacă serverul este local, atunci acest parametru fie nu poate fi utilizat, fie puteți introduce localhost acolo. De asemenea, rețineți că ip-ul serverului după cheie trebuie scris fără spațiu;
  • -p(--password=...) este parola utilizatorului. Dacă această cheie nu este utilizată, atunci conectarea la baza de date va fi posibilă dacă nu există o parolă. De asemenea, nimeni nu interzice introducerea unei parole în comandă și nu ar trebui să existe un spațiu după cheie (de exemplu: -p1234567890, unde 1234567890 este parola);
  • site_ru acesta este numele bazei de date de pe serverul MySql;
  • site_ru.sql acesta este fișierul dump.

Pentru a face o copie de rezervă a mai multor baze de date, puteți utiliza cheia -Bși specificați mai multe baze de date, iată un exemplu:

Mysqldump -uroot -h10.30.30.10 -p site_ru site2_ru site3_ru > sites.sql

Dacă situația nu vă oferă timp să vă gândiți și trebuie să faceți o copie de rezervă a tuturor bazelor de date, atunci în această situație puteți utiliza cheia --toate-bazele de date, iată un exemplu:

Mysqldump -uroot -h10.30.30.10 -p -A > all-db.sql

Apropo, există o nuanță.

Dacă faceți o copie de rezervă a bazei de date pe un server care rulează și, în plus, folosit activ, atunci riscați să rupeți conexiunile logice. Există câteva moduri de a evita acest lucru.

Prima modalitate este de a bloca mesele, de exemplu. puteți folosi parametrul --lock-tables, iată un exemplu:

Mysqldump -uroot -h10.30.30.10 -p --lock-tables site_ru > site_ru.sql

Dar în momentul creării unei copii de rezervă, solicitările clientului vor fi suspendate... și, prin urmare, pot exista expirări.

A doua modalitate este să utilizați comutatorul --flush-log atunci când creați o copie de rezervă. Această cheie se va închide buștean vechi acțiuni și va crea unul nou. Dacă cineva notează ceva în timpul creării unei copii, acest lucru se va reflecta la începutul jurnalului și va fi posibilă transferarea acestei modificări în baza de date. În continuare, pentru a fi sigur, după finalizarea copiei de rezervă, trebuie să rulați comanda mysqladmin -flush-logs și să lăsați o copie a penultimului jurnal binar.

Restaurarea unei copii de siguranță a bazei de date

Aici utilitarul „mysql” va guverna deja. Iată un exemplu:

Mysql -uroot -h10.30.30.10 -p site_ru< site_ru.sql

Alt mod, mai pedant:

Mysql -uroot -p Introduceți parola: Bun venit la monitorul MySQL. Comenzile se termină cu ; sau\g. ID-ul dvs. de conexiune MySQL este 35 Versiunea serverului: 5.6.35-1+deb.sury.org~xenial+0.1 (Ubuntu) Copyright (c) 2000, 2016, Oracle și/sau afiliații săi. Toate drepturile rezervate. Oracle este o marcă înregistrată a Oracle Corporationși/sau afiliații săi. Alte nume pot fi mărci comerciale ale proprietarilor respectivi. Tastați „ajutor”; sau „\h” pentru ajutor. Tastați „\c” pentru a șterge instrucțiunea de intrare curentă. mysql> folosește site_ru; mysql> sursa site_ru.sql;

Ei bine, dacă baza de date este salvată într-o arhivă gz, atunci puteți combina comenzi mysqlși zcat așa:

Zcat site_ru.sql.gz | mysql -uroot -h10.30.30.10 -p site_ru

Mai multe opțiuni pentru utilizarea mysqldump

De exemplu, avem nevoie de o bază de date în zona de dezvoltare, un sandbox, ca să spunem așa, iar dimensiunea bazei de date principale este foarte mare. Puteți folosi tasta -where="true limit 150", la care vom specifica în mod explicit un eșantion de date de cel mult 150 de înregistrări. Iată un exemplu:

Mysqldump -uroot -h10.30.30.10 -p --where="true limit 150" site_ru > site_ru.sql

Dacă avem nevoie doar de o structură fără date, atunci putem folosi comutatorul --no-data, iată un exemplu

Mysqldump -uroot -h10.30.30.10 -p --no-data site_ru > site_ru.sql

Dacă avem nevoie de o copie a unui singur tabel, atunci iată un exemplu de comandă:

Mysqldump -u root -p testdb tablename > testdb_table_backup.sql

Dacă avem nevoie de o copie a declanșatorilor, procedurilor și evenimentelor (programatorul încorporat), atunci iată un exemplu:

Mysqldump --no-create-info --no-data --triggers --rutines --events -uroot -p site_ru | gzip > ~/database.sql.gz

De asemenea, puteți crea imediat un dump de bază de date arhivată. O poți face astfel:

Mysqldump -uroot -p site_ru | gzip > /path/to/site_en.sql.gz

Și puteți specifica, de asemenea, data la care a fost creată arhiva, astfel:

Mysqldump -uroot -p site_ru | gzip > `data +/path/to/site_ru.sql.%Y%m%d.%H%M%S.gz`

Chei pentru utilizarea mysqldump

Mai jos sunt cele mai populare chei mysqldump:

Extinde lista...

  • --add-drop-database - Adaugă o instrucțiune DROP DATABASE înainte de fiecare instrucțiune CREATE DATABASE.
  • --add-drop-table — Adaugă o instrucțiune DROP TABLE înainte de fiecare instrucțiune CREATE TABLE.
  • --add-locks - Adaugă operator LOCK TABLES înainte de execuție și UNLOCK TABLE după fiecare dump de tabel (pentru a accelera accesul la MySQL).
  • --all-databases, -A — Salvează toate tabelele din toate bazele de date gestionate de serverul curent.
  • --allow-keywords - Permite crearea de nume de coloane care se potrivesc cu cuvintele cheie. Absența conflictelor este asigurată prin adăugarea numelui tabelului ca prefix la numele fiecărei coloane.
  • —comments, -i — Acest parametru vă permite să adăugați la depozit Informații suplimentare, cum ar fi versiunea mysqldump, versiunea MySQL, numele gazdă unde se află serverul MySQL.
  • --compact Această opțiune face ca mysqldump să creeze un dump folosind cel mai compact format posibil. Parametrul este opusul -comments.
  • --compatible=name — Parametrul generează o ieșire compatibilă cu alte SGBD-uri sau cu cele mai vechi versiuni MySQL. În loc de cuvântul cheie nume, puteți utiliza: „ansi”, „mysql323”, „mysql40”, „postgresql”, „oracle”, „mssql”, „db2”, „maxdb”, „no_key_options”, „no_table_options”, „no_field_options” . Puteți utiliza mai multe valori, separate prin virgule.
  • --complete-insert, -c — Folosit formular complet Instrucțiunea INSERT (cu numele coloanelor).
  • --create-options - Adaugă informații suplimentare la instrucțiunile CREATE TABLE. Acesta ar putea fi un tip de tabel, valoarea initiala AUTO_INCREMENT și alți parametri.
  • --databases, -B — Parametrul vă permite să specificați numele mai multor baze de date pentru care doriți să creați un dump.
  • --delayed — Folosiți comanda INSERT DELAYED când inserați rânduri.
  • --delete-master-logs - Serverul de replicare principal șterge automat jurnalele binare (logbin) după ce un dump a fost creat cu succes folosind mysqldump. Această opțiune activează automat opțiunea „--master-data”.
  • --disable-keys, -K - Pentru fiecare tabel, înconjoară instrucțiunea INSERT cu expresii /*!40000 ALTER TABLE nume_tbl DISABLE KEYS */; și /*!40000 ALTER TABLE nume_tbl ENABLE KEYS */; în rezultatul dump-ului. Acest lucru va accelera încărcarea datelor pe server pentru tabele precum MyISAM, deoarece indecșii sunt creați după ce toate datele au fost introduse.
  • --extended-insert, -e — Folosiți comanda INSERT cu noua sintaxă cu mai multe linii (îmbunătățește compactitatea și performanța instrucțiunilor de intrare).
  • --flush-logs, -F — Scrieți date pe disc syslog din buffer-ul serverului MySQL înainte de a începe dump-ul.
  • --force, -f — Continuați chiar dacă a apărut o eroare în timpul procesului de creare a imaginii.
  • —hex-blob — Parametrul vă permite să reprezentați date binare în câmpuri de tip BINARY, VARBINARY, BLOB și BIT în format hexazecimal. Deci secvența „abc” va fi înlocuită cu 0x616263.
  • --ignore-table=db_name.tbl_name — Permite ignorarea tabelului tbl_name a bazei de date db_name la crearea unui dump. Dacă trebuie să excludeți mai multe tabele din dump, trebuie să utilizați mai mulți parametri „--ignore-table”, specificând câte un tabel în fiecare parametru.
  • --insert-ignore — Adaugă cuvânt cheie IGNORE într-o instrucțiune INSERT.
  • --lock-all-tables, -x — Specificarea acestei opțiuni face ca toate tabelele din toate bazele de date să fie blocate în timp ce se creează un dump complet al tuturor bazelor de date.
  • --lock-tables, -l — Specificarea acestei opțiuni blochează tabelele din baza de date pentru care se creează dump-ul.
  • --no-autocommit - Include toate instrucțiunile INSERT de pe același tabel într-o singură tranzacție, rezultând o încărcare mai rapidă a datelor.
  • --no-create-db, -n — Suprimă descărcarea instrucțiunilor CREATE DATABASE care sunt adăugate automat când se utilizează opțiunile --databases și --all-databases.
  • --no-data, -d — Suprimă crearea de instrucțiuni INSERT în dump, care poate fi utilă la descărcarea unei structuri de bază de date fără datele în sine.
  • —opt — Parametrul are scopul de a optimiza viteza de copiere a datelor și este o comandă rapidă care include următoarele opțiuni: —quick —add-drop-table —add-locks —create-options —disable-keys —extended-insert —lock -tables —set-charset . Începând cu MySQL 4.1, opțiunea --opt este utilizată implicit, adică. Toate opțiunile de mai sus sunt activate implicit, chiar dacă nu sunt specificate. Pentru a exclude acest comportament, trebuie să utilizați parametrul --skip-opt
  • --order-by-primary - Specificarea parametrului face ca acest lucru să se întâmple. că fiecare tabel este sortat după cheia sa primară sau primul index unic.
  • --port, -P — Număr Port TCP, folosit pentru a se conecta la gazdă.
  • —protocol=(TCP|SOCKET|PIPE|MEMORY) — Parametrul vă permite să setați protocolul pentru conectarea la server.
  • —rapid, -q — Vă permite să începeți să generați un dump fără să așteptați sarcina completa date de pe server și astfel economisind memorie.
  • --quote-names, -Q — Plasează numele bazei de date, tabelelor și coloanelor în backticks `. Începând cu MySQL 4.1, această opțiune este activată implicit.
  • --replace - Adaugă cuvântul cheie REPLACE la instrucțiunea INSERT. Această opțiune a apărut pentru prima dată în MySQL 5.1.3.
  • --result-file=/path/to/file, -r /path/to/file — Parametrul trimite dump-ul către fișier fișier. Această opțiune este utilă mai ales pe Windows, fără a utiliza linia de comandă. când puteți redirecționa rezultatul către un fișier folosind secvențele > și >>.
  • --routines, -R — Această opțiune creează un dump de proceduri și funcții stocate. Disponibil cu MySQL 5.1.2.
  • --single-transaction - Opțiunea creează un dump ca o singură tranzacție.
  • —skip-comments — Acest parametru vă permite să suprimați ieșirea de informații suplimentare către dump.
  • --socket=/path/to/socket, -S /path/to/socket — Fișier socket pentru conectarea la localhost.
  • —tab=/path/, -T /path/ — Când utilizați acest parametru, două tabele sunt create în directorul de cale pentru fiecare tabel dosar separat: tbl_name.sql, care conține instrucțiunea CREATE TABLE și tbl_name.txt, care conține datele de tabel delimitate de tabulatori. Formatul datelor poate fi suprascris în mod explicit folosind opțiunile --fields-xxx și --lines-xxx.
  • --tables - Suprascrie parametrul --databases (-B). Toate argumentele care urmează acestui parametru sunt tratate ca nume de tabel.
  • —triggers — creează un dump de declanșatoare. Această opțiune este activată implicit. Pentru a o dezactiva, utilizați opțiunea --skip-triggers.
  • --events, -E — creează un dump de eveniment. Consultați MySQL Event Scheduler sau managerul de evenimente încorporat în MySQL.
  • --tz-utc - atunci când este utilizat acest parametru la dump va fi adăugat un operator de forma SET TIME_ZONE=’+00:00′, ceea ce va permite ca dump-urile să fie schimbate în diferite fusuri orare.
  • --verbose, -v — Mod de ieșire extins. Concluzie mai mult informatii detaliate despre activitatea programului.
  • --version, -V — Afișează informații despre versiunea programului.
  • —where=’unde-condiție’, -w ‘unde-condiție’ — Eliminați numai înregistrările selectate. Vă rugăm să rețineți că sunt necesare ghilimele.
  • --xml, -X — Reprezintă dump-ul bazei de date ca XML.
  • --first-slave, -x — Blocează toate tabelele din toate bazele de date.
  • —debug=…, -# — Monitorizează progresul programului (pentru depanare).
  • --help — Ieșire informații generaleși ieși din program.

Dumpingul și restaurarea unei baze de date MySQL este destul de simplu și convenabil de făcut de la distanță prin SSH sau direct prin consola serverului. De la distanță, acest lucru se poate face folosind programele Putty/Kitty. De asemenea, puteți rula exemplele de mai jos pe Windows rulând Linie de comandacmd‘. Mai jos sunt exemple despre cum să creați depozite de baze de date MySQL și apoi să le restaurați dacă este necesar, de exemplu pentru site-ul dvs. web, magazinul online sau alt proiect.

Crearea unui Dump de bază de date MySQL

Pentru a executa aceste comenzi, conectați-vă de la distanță la serverul dvs. prin SSH folosind unul dintre programele enumerate mai sus. După conectarea și autorizarea la server/găzduire, puteți introduce comenzile de mai jos.

# Faceți backup pentru o bază de date în fișierul dump_file.sql mysqldump -uroot -p your_base > dump_file.sql # Activat gunoi de ferestre Cel mai bine este să creați o comandă puțin diferită, care să prevină # suprascrierea accidentală a liniilor de descărcare din cauza conversiei caracterelor newline „\r\n” în „\n” mysqldump -uroot -p your_base -r dump_file_utf8.sql # Dacă aveți nevoie de backup numai tabele individuale și nu întreaga bază de date # (specificați numele tabelelor separate printr-un spațiu după numele bazei de date) mysqldump -uroot -p your_base TABLE1 TABLE2 TABLE3 > dump_file.sql # Dacă trebuie să creați o copie de rezervă numai a bazei de date structură fără datele în sine mysqldump -uroot -p -- no-data baza_voastra > dump_file.sql # Faceți copii de rezervă pentru toate bazele de date în fișierul data_actuală.gz mysqldump -uroot -p --all_databases | gzip -c > „data „+%Y-%m-%d””.gz # Backup, unde se creează un INSERT separat pentru fiecare intrare # și cu indicație explicită codificarea bazei de date UTF-8 mysqldump -uroot -p --default-character-set=utf8 your_base --extended-insert=FALSE | gzip -c > „data „+%Y-%m-%d””.gz

# Faceți backup pentru o bază de date în dump_file.sql

mysqldump - uroot - p baza_voastra > dump_file . sql

# Pe Windows, cel mai bine este să creați un dump cu o comandă ușor diferită care împiedică

# suprascriere aleatorie a liniilor de descărcare din cauza conversiei caracterelor newline „\r\n” în „\n”

mysqldump - uroot - p your_base - r dump_file_utf8 . sql

# Dacă aveți nevoie de backup numai pentru tabele individuale și nu pentru întreaga bază de date

# (indicați numele tabelelor separate printr-un spațiu după numele bazei de date)

mysqldump - uroot - p baza_voastra TABLE1 TABLE2 TABLE3 > dump_file . sql

# Dacă trebuie să faceți backup numai pentru structura bazei de date fără datele în sine

mysqldump - uroot - p -- fără date baza dvs. > fișier_dump . sql

# Faceți backup pentru toate bazele de date în fișierul current_date.gz

mysqldump - uroot - p -- all_databases | gzip - c > „data „+%Y-%m-%d”” . gz

# Backup, unde este creat un INSERT separat pentru fiecare intrare

# și specificând în mod explicit baza de date care codifică UTF-8

mysqldump - uroot - p -- default - character - set = utf8 your_base -- extins - insert = FALSE | gzip - c > „data „+%Y-%m-%d”” . gz

În exemplul de mai sus, utilitarul este folosit pentru a crea o copie de rezervă mysqldump, care este inclus cu mysql. Următorii sunt parametrii pentru crearea unei copii de siguranță a bazei de date, pe care le vom examina mai detaliat:

  • -u– parametrul specifică login-ul care va fi folosit pentru conectarea la baza de date. În exemplu, folosim login-ul root, care trebuie specificat în acest parametru fără spațiu! Drept urmare, arată ca -uroot
  • -p– parametrul indică faptul că trebuie să introduceți o parolă pentru autentificarea specificată. L-am lăsat gol, drept urmare parola va trebui introdusă după ce apăsați „Enter” la executarea comenzii. Cu toate acestea, puteți specifica parola chiar aici, ca în parametrul de conectare, fără spațiu după -p, totuși, această metodă nu este sigură, deoarece consola vă salvează comenzile într-un fișier jurnal și dacă nu îl ștergeți în mod regulat, poate fi văzut de un atacator.
  • baza_voastra– în loc de această linie din exemplu, trebuie să specificați nume real Baza de date pentru care creați o copie de rezervă.
  • > – un operator care arată direcția de acțiune, i.e. de parcă ar indica că veți scrie din baza de date într-un fișier.
  • dump_file.sql– acesta este numele fișierului .slq în care trebuie să salvați baza de date. Este indicat cu un spațiu după operatorul „>”. Puteți specifica orice alt nume. De exemplu, astfel încât în ​​nume sistemul să se introducă automat ora curentă, specificați doar o linie ca:

    „data „+%Y-%m-%d””

    „data „+%Y-%m-%d””


    după această linie din exemplu, extensia fișierului este indicată „ .gz‘. Ca rezultat, un fișier precum „ 2014-11-15.gz‘.

    Atenţie! Dacă specificați doar numele fișierului, acesta va fi salvat în același director în raport cu care executați această comandă. Acestea. dacă vedeți așa ceva la promptul de comandă # , Unde root@dvs acesta este numele de conectare și server, fișierul va fi creat în director /Acasă. Pentru a modifica salvarea fișierului într-o cale diferită, specificați calea completă pentru salvarea fișierului în loc de nume, de exemplu: /var/www/backup/dump_file.sql.

  • În al doilea exemplu, în loc de operatorul „ > Se folosește „operator”. | ‘, ceea ce indică necesitatea de a efectua comandă suplimentară gzip cu parametrul ‘ -c„ care vă permite să împachetați imediat depozitul într-o arhivă și numai apoi să îl salvați într-un fișier precum „ 2014-11-15.gz„, după cum a raportat operatorul” > ‘.
  • Parametru -nu există date vă permite să descărcați numai structura bazei de date fără datele în sine. Destul de util în unele cazuri când datele nu sunt necesare.
  • Opțiuni –set-de-caractere-implicit=utf8Și –extended-insert=FALSE. Prima vă permite să specificați în mod explicit codificarea care este utilizată de această bază de date, evitând astfel salvarea bazei de date într-o codificare greșită. În loc de utf8, puteți specifica orice altă codificare, de exemplu cp1251. Al doilea parametru vă permite să specificați că trebuie creată o comandă INSERT separată pentru fiecare înregistrare la export. În unele cazuri, acest lucru poate fi necesar la restaurarea parțială a datelor dintr-un dump.
  • Restaurarea unei baze de date dintr-un fișier de descărcare MySQL

    Acum să ne uităm la procesul invers de restaurare a unei baze de date dintr-un fișier dump. Această acțiune realizat folosind programul mysql. Să ne uităm imediat la un exemplu.

Cele mai bune articole pe această temă