Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Lajme
  • Refuzohet qasja në Mysql - Si të rikuperoni skedarin hale nga mysqldump? Rezervoni dhe rivendosni bazën e të dhënave MySQL (MariaDB) me mysqldump.

Refuzohet qasja në Mysql - Si të rikuperoni skedarin hale nga mysqldump? Rezervoni dhe rivendosni bazën e të dhënave MySQL (MariaDB) me mysqldump.

Pershendetje miq! 🙂

Sot vendosa të vazhdoj bisedën rreth punës me MySQL në tastierë dhe t'i kushtoj vëmendje procedurës së eksportit të bazës së të dhënave Të dhënat e MySQL.

Në këtë artikull do të flas se si të hedhim një bazë të dhënash MySQL, si dhe të ngarkojmë të dhëna nga MySQL në skedar Excel dhe format csv.

Ne do të shqyrtojmë opsione të ndryshme kampionimi i informacionit nga: krijimi i një grumbullimi të një ose disa bazave të të dhënave, eksportimi i të dhënave nga tabelat individuale dhe rezultate arbitrare ZGJIDH kërkesat.

Ne do të flasim gjithashtu se si të nxjerrim të dhëna nga një bazë të dhënash MySQL në tastierën e serverit dhe linjën e komandës MySQL.

Në këtë artikull, unë nuk do të flas për mënyrën e eksportimit të të dhënave duke përdorur phpMyAdmin dhe mjete të tjera vizuale.

Së pari, sepse tashmë ka mjaft material për këtë temë në internet. Për më tepër material cilësor, të cilin nuk kam dëshirë ta kopjoj-paste.

Dhe, së dyti, unë vetë shqyrtova shkurtimisht procesin e nxjerrjes së informacionit nga një bazë të dhënash MySQL në një skedar SQL në një nga artikujt e mi, ku fola për .

Pra, nëse nuk jeni një zhvillues profesionist ose administratori i sistemit, të cilit mund t'i gjeni të dobishme informacionet rreth punës me tastierën, dhe keni ardhur vetëm për udhëzime se si të eksportoni bazën e të dhënave në phpMyAdmin, atëherë mund të kufizoheni në leximin e informacionit në lidhjen e mësipërme.

Unë dua që ju të më kuptoni saktë: Unë nuk dua t'ju ofendoj në asnjë mënyrë, por dua që ju të kaloni kohën tuaj me përfitim maksimal për punën dhe morën atë që kërkonin.

Kjo përfundon pjesën hyrëse dhe kalojmë në një rishikim të komandave të konsolës për krijimin e një skedari të bazës së të dhënave MySQL, të cilin vendosa ta rendit sipas sasisë së të dhënave që ruhen: duke filluar nga eksportimi i të gjithë bazës së të dhënave, duke përfunduar me tabela individuale dhe rezultatet e pyetje arbitrare.

Krijimi i një baze të dhënash MySQL përmes konsolës

Do të doja të bëja një sqarim të vogël që në fillim.

Deponia e bazës së të dhënaveështë një skedar me një grup komandash SQL, i cili, kur lansohet, ju lejon të krijoni baza të të dhënave dhe tabela, si dhe t'i mbushni ato me informacion. Deponia është e nevojshme për ata që duan të shkarkojnë një bazë të dhënash MySQL në mënyrë që ta kopjojnë atë në një server tjetër ose brenda një ekzistues.

Gjithashtu, nëse dikush nuk e di, një kopje rezervë e bazës së të dhënave MySQL është, në thelb, një grumbullim i tij i bërë në periudhë të caktuar kohë, e cila ju lejon të rivendosni strukturën dhe të dhënat e bazës së të dhënave nëse është e nevojshme.

Eksporto të dhënaështë thjesht nxjerrja e informacionit nga tabelat në formë teksti Për punë të mëtejshme me redaktorë teksti ose grafikë.

Prandaj, komandat për këto veprime do të jenë paksa të ndryshme.

Për të krijuar një bazë të dhënash hale, MySQL ka një mjet të integruar të quajtur mysqldump, i cili duhet të përdoret jashtë linja e komandës MySQL në tastierën e serverit ose guaskën tjetër.

Pra, për opsionin më të thjeshtë dhe më të zakonshëm - eksportimin e të dhënave nga një bazë të dhënash specifike në Konsola MySQL Për ta transferuar atë në një server tjetër ose kopje të brendshme, duhet të ekzekutoni komandën e mëposhtme:

Mysqldump -u username -p database_name > path_and_dump_file_name

Ky mjet mund të krijojë deponime të bazës së të dhënave MySQL vetëm në formën e skedarëve me komanda SQL, kështu që pavarësisht se çfarë shtrirjeje zgjidhni për skedarin tuaj, përmbajtja e tij do të jetë e njëjtë në çdo rast. Dhe mos harroni të kontrolloni lejet e shkrimit të drejtorisë në të cilën do të vendoset përpara se të eksportoni informacion nga MySQL në mënyrë që skedari të mund të krijohet.

Nëse befas ju duhet të bëni një hale të të gjitha bazave të të dhënave në server, atëherë përdorni opsionin e mëposhtëm të komandës:

Mysqldump -u emri i përdoruesit -p --të gjitha bazat e të dhënave > path_and_dump_file_name

Për të hedhur vetëm disa baza të të dhënave specifike, do t'ju duhet të telefononi mysqldump me parametrat e mëposhtëm:

Mysqldump -u emri i përdoruesit -p --baza e të dhënave data_name1, data_name2, ... > path_and_dumpfile_name

Si rezultat, në secilin rast ju do të merrni një hale të bazës së të dhënave MySQL që përmban komanda për krijimin e strukturës së tabelave të përfshira (fushat, llojet e tyre, indekset, çelësat, etj.), si dhe operacionet për plotësimin e tyre me të dhëna.

Ky opsion është i përshtatshëm vetëm për të rivendosur dhe kopjuar të gjitha bazat e të dhënave.

Si të bëni kopje rezervë të tabelave të caktuara MySQL dhe të merrni të dhënat e tyre në formë e lexueshme, do të flasim më tej.

Hedhja e një tabele MySQL dhe eksportimi i të dhënave

Për të krijuar një grumbull të tabelave të caktuara të bazës së të dhënave MySQL, do të na duhet i njëjti mjet mysqldump, thirrur me parametrat e mëposhtëm:

Mysqldump -u emri i përdoruesit -p emri i bazës së të dhënave emri_tabela1, emri_tabela2, ... > emri_dhe_dumpfile_path_and_dump

Kur telefononi mysqldump, mund të specifikoni tabelat e kërkuara si vlerën e parametrit -- tavolina, kur përdoret parametri -- bazat e të dhënave do të injorohen:

Mysqldump -u emri i përdoruesit -p --baza e të dhënave data_name1, data_name2 --tabela emri_tabela1, emri_tabela2, ... > path_and_dumpfile_name

Shembulli i mësipërm do të shfaqë gabimin e mëposhtëm:

Mysqldump: Mori gabim: 1049: Baza e të dhënave të panjohura "database_name1", kur zgjidhni bazën e të dhënave

Siç mund ta shihni, do të përdoret vetëm databaza më e fundit nga lista. Në parim, kjo sjellje është mjaft logjike, sepse Tabelat e specifikuara mund të mos shfaqen në të gjitha bazat e të dhënave.

Në rregull, ne kemi marrë një grumbull të tabelave të bazës së të dhënave MySQL. Mund të përdoret për t'i rikthyer ato ose për t'i kopjuar ato së bashku me strukturën.

Por, çka nëse thjesht duhet të merrni informacionin e ruajtur në to dhe, mundësisht, në një formë të lexueshme, në mënyrë që t'ia dërgoni menaxherit dhe ta shikoni në një redaktues të rregullt teksti ose fletëllogaritëse? MySQL gjithashtu ka mjete për këtë.

Mundësia e telefonimit të shërbimeve do të na ndihmojë të arrijmë planet tona mysql nga tastiera me parametra të caktuar:

Mysql -u username -p database_name -e "SELECT * FROM table_name"

Kjo komandë do të na lejojë të ekzekutojmë një pyetje në bazën e të dhënave të kërkuar dhe ta nxjerrim rezultatin në tastierë pa shkuar në linjën e komandës MySQL.

Epo, për të mos nxjerrë të dhëna në tastierë, por për t'i shkruar ato në një skedar, duhet të plotësoni komandën si më poshtë:

Mysql -u emri i përdoruesit -p -e "SELECT * FROM emri i tabelës" > path_and_filename

Falë këtyre ndërtimeve, jo vetëm që mund të marrim të dhëna të ruajtura në të gjitha fushat e tabelës, por edhe në ato specifike. Për ta bërë këtë, thjesht zëvendësoni simbolin e karaktereve (*) me ato të kërkuara, të ndara me presje.

Si rezultat, prodhimi ynë do të jetë i zakonshëm skedar teksti, i cili do të përmbajë emrat e fushave në formën e një titulli dhe informacion mbi to për të gjitha regjistrimet. Mund të hapet normalisht redaktori i tekstit, pavarësisht se çfarë rezolucioni i jepni kur e krijoni.

Nëse dëshironi të eksportoni të dhëna nga një bazë të dhënash MySQL në xls ose format csv në mënyrë që skedari që rezulton të shfaqet saktë në redaktorët e tabelave, ne do të flasim se si ta bëjmë këtë pak më vonë :)

Krijimi i kopjeve rezervë dhe nxjerrja e të dhënave nga një bazë të dhënash MySQL duke përdorur pyetje

Ne folëm se si të hedhim një bazë të dhënash MySQL - një ose disa, si dhe tabela individuale. Por ndonjëherë në praktikë ka raste kur duhet të eksportoni një grup të dhënash që nuk kufizohet në një tabelë. Ose duhet të zgjidhni vetëm disa të dhëna nga tabela.

Zhvilluesit e projekteve të korporatave veçanërisht shpesh e hasin këtë kur menaxherët u kërkojnë atyre të ofrojnë të gjitha llojet e të dhënave statistikore. Ose kur duhet të bëni kopje rezervë të një pjese të caktuar të tabelës për ta rikthyer shpejt atë.

Për kopje rezervë do të na duhet i njëjti mjet mysqldump, e cila do të duhet të quhet kështu:

Mysqldump -u user_name -p database_emri_tabela_where "lookup" > path_and_dump_file_name

Si rezultat, ne do të marrim një skedar me komanda SQL për të krijuar një tabelë me të gjithë strukturën e saj, e cila, pas krijimit, do të mbushet me informacionin e zgjedhur duke përdorur një pyetje kërkimi.

Nëse thjesht duhet të marrim të dhënat e ruajtura në një ose më shumë tabela, atëherë do të na duhet të modifikojmë komandën e përdorur në rastin e mëparshëm kur marrim të gjitha të dhënat në tabelë, vetëm me disa sqarime:

Mysql -u user_name -p -e "SELECT * FROM table_name WHERE kërko" > path_and_file_name

Siç e kuptoni, përveç sqarimeve të ndryshme të specifikuara në kërkesë duke përdorur direktivën KU, mund të përdorni konstruksione të tjera SQL: BASHKOHU, BASHKIM etj.

Ju mund të mbledhni çdo statistikë që dëshironi :)

I njëjti veprim mund të kryhet edhe kur punoni në linjën e komandës MySQL duke përdorur komandën e mëposhtme:

ZGJIDH * NGA database_tabela WHERE kërkimi INTO OUTFILE "path_and_file_name";

Kjo komandë është krijuar posaçërisht për të krijuar skedarë me rezultate kampionimi. Për më tepër, rezultatet jo vetëm që mund të eksportohen në skedarë, por edhe të shkruhen në variabla, dhe të dhënat e daljes mund të formatohen në mënyra të ndryshme.

Nëse sa më sipër është rasti juaj, atëherë listën e plotë Ju mund t'i gjeni parametrat dhe opsionet për thirrjen e kësaj komande këtu - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

Në fund të tij ekskursion i shkurtër për mysqldump do të doja të jepja një mundësi për të thirrur një komandë me një listë parametrash për të krijuar një hale të optimizuar të bazës së të dhënave dhe tabelave MySQL, duke rivendosur bazën e të dhënave dhe tabelat individuale nga të cilat do të marrë më pak kohë sesa me një thirrje të rregullt:

Mysqldump -u emri i përdoruesit -h host_ose_IP_MySQL_server -p --no-autocommit --opt database_name > path_and_dump_file_name;

Për hir të eksperimentit kam përdorur këtë opsion për të hedhur një bazë të dhënash MySQL prej 143 MB në madhësi. Rivendosja e mëvonshme zgjati 59 sekonda krahasuar me 1 minutë e 3 sekonda kur baza e të dhënave u rivendos nga një hale e bërë duke thirrur mysqldump pa parametra të veçantë.

Jam dakord që kjo është një gjë e vogël. Por kjo është vetëm në rast vëllimi i dhënë të dhëna. Nëse e përdorni këtë teknikë kur krijoni një hale më të madhe se 1 GB, ndryshimi do të jetë më i rëndësishëm.

Nëse hasni në një situatë të tillë, mos harroni të arkivoni fillimisht deponinë e bazës së të dhënave MySQL. Më e mira është tar.gz. Atëherë rikuperimi do të marrë edhe më pak kohë.

Eksportoni të dhëna nga MySQL në skedarë Excel dhe csv

Jo më kot kombinova informacionin për nxjerrjen e informacionit nga MySQL në këto dy formate në një bllok, sepse ... ato janë shumë të ngjashme, ato përdoren afërsisht në të njëjtën mënyrë (për të strukturuar informacionin në formën e tabelave) dhe do të thirren të njëjtat komanda për eksport.

Siç e dini, i vetmi ndryshim domethënës midis këtyre formateve është se zgjerimi xls dhe xlsx kanë skedarë të krijuar në program Microsoft Office Excel, i cili funksionon vetëm në Windows, ndërsa skedarët csv janë më universal dhe operacionet me to janë të mundshme në shumë redaktorë.

Kjo nuk do të thotë që xls është i disponueshëm kudo përveç Microsoft Office Excel, nuk do të hapet. I njëjti OpenOffice konfirmon të kundërtën.

Por për një mundësi të tillë këtë mbështetje duhet të jetë i pranishëm në produkt software. Skedarët csv janë të lexueshëm edhe në një redaktues teksti të zakonshëm si Notepad, por kjo formë nuk do të jetë plotësisht e lexueshme.

Më lejoni të filloj me faktin se vetëm rezultatet mund të eksportohen në xls ose csv Pyetjet SQL, me të cilin kemi mësuar të punojmë më herët, sepse do të jetë e pamundur të nxirret e gjithë databaza në një skedar në një operacion.

Së pari, kjo nuk është optimale, sepse... një skedar i tillë nuk ka gjasa të hapet nëse ka një vëllim të madh informacioni të ruajtur në bazën e të dhënave. Dhe, së dyti, nuk është e qartë se si të ndahen informacionet brenda skedarit në tabela dhe fusha.

Jo, sigurisht që është e mundur ta bëni këtë, por nuk ka gjasa të bëhet me një komandë dhe në përgjithësi nuk ka gjasa që dikush ta bëjë këtë në tastierë. Unë mendoj se për këto qëllime do t'ju duhet softuer special ose të paktën një skenar.

Nëse papritmas e dini se si mund të eksportoni informacion nga e gjithë baza e të dhënave MySQL në një ose më shumë skedar xls ov në tastierë, pastaj shkruani në lidhje me të në komente. Unë mendoj se leximi për këtë do të jetë i dobishëm për shumë njerëz.

Pra, nëse po flasim se si të eksportojmë të dhëna nga MySQL në xls dhe csv, atëherë kjo mund të bëhet direkt në tastierën e serverit përmes mjetit mysql ose në, veprën me të cilën ju njoha në artikullin tim të mëparshëm.

Le të fillojmë me radhë.

Eksportoni të dhëna nga baza e të dhënave MySQL në csv dhe formatet xls Ju mund të përdorni komandat e mëposhtme direkt në tastierën e serverit.

Aktiv Linux sistemet:

Mysql -u username -d database_name -p -e "SELECT * FROM database_tab;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > emri_shtegu_dhe_file. csv

Në parim, nëse është absolutisht e nevojshme, mund ta përdorni këtë komandë për të eksportuar të dhënat e MySQL në një skedar Excel. Por, të them të drejtën, nuk jam marrë me këtë në praktikë dhe nuk e kam idenë se çfarë do të dalë në fund, sepse... Aktualisht jam duke punuar në Windows. Nëse e përdorni këtë komandë nën Linux, ju lutemi shkruani në komente për rezultatet e punës suaj. Unë mendoj se informacioni do të jetë me interes për të gjithë.

Aktiv Dritaret:

Eksporto të dhëna nga Tabelat MySQL në csv me komandën e mësipërme në në këtë rast, për fat të keq, nuk do të jetë e mundur, sepse Windows, ndryshe nga Linux, nuk ka të integruar komanda e konsolës për të punuar me threads, i cili është sed në Linux.

Sigurisht, mund ta instaloni, por është shumë telash. Përndryshe, ju mund të përdorni CygWin- emulator Konzolat Linux për sistemet Windows.

Është mirë nëse e keni tashmë të instaluar. Përndryshe, eksportimi i të dhënave nga baza e të dhënave MySQL duke përdorur metodën e zgjedhur do të na sjellë shumë telashe.

Por nxjerrja e informacionit në një skedar xls është aq e lehtë sa 5 kopecks :) Është shumë e lehtë ta lëshosh atë në mënyrën e mëposhtme të cilën e kam provuar personalisht:

Mysql -u username -d database_name -p -e "SELECT * FROM database_tab;" > path_and_file_name.xls

Hapur këtë skedar në Microsoft Office Excel pa asnjë problem fare. E vetmja gjë është se gjatë hapjes së tij, në ekran u shfaq një mesazh që paralajmëronte se formati aktual i skedarit që hapet ndryshon nga shtrirja e specifikuar.

Por kur konfirmoi veprimin, dokumenti u hap pa vështirësi - i gjithë informacioni u nda në qeliza në formën në të cilën ishte ruajtur në vetë tabelën.

Nuk e di, mbase nëse kryeni ndonjë veprim specifik në Microsoft Office Excel, do të lindin probleme në të ardhmen; Kur shikoni të dhënat normalisht, të paktën, nuk pashë asgjë të pazakontë.

Nëse hasni ndonjë problem gjatë përdorimit të skedarit xls të eksportuar nga MySQL, qoftë në këtë program ose në të tjerë, ju lutem më njoftoni në komente.

Duke përdorur metodën e përshkruar më sipër, ju mund të eksportoni përmbajtjen e një baze të dhënash MySQL në një skedar csv, në parim. Por atëherë të dhënat nga fusha të ndryshme të tabelës do të shkruhen në masë, pa kufij, të cilët mund të mos shfaqen mirë në programe të ndryshme për punën me tabela, në të cilat zakonisht punojnë me skedarë csv.

OpenOffice, meqë ra fjala, nuk i intereson :) Ai kufizoi automatikisht informacionin e marrë në mënyrën se si ne eksportuam përmbajtjen e bazës së të dhënave MySQL në xls. Nuk e di si e bën, por rekomandoj ta përdor :)

Epo, i njëjti Microsoft Office Excel shfaqi të gjithë informacionin që korrespondon me një rekord në tabelë, duke e shkruar atë në një qelizë pa asnjë kufi. Unë mendoj se Në mënyrë të ngjashme Më shumë redaktorë të tabelës po vijnë.

Prandaj, kur eksportoni një bazë të dhënash MySQL në skedarët csv, duhet ta bëni duke ndarë informacionin personazhe të veçanta, e perceptuar nga redaktorët.

Dhe pastaj gradualisht iu afrova metodës së dytë Eksporti i MySQL të dhëna në csv dhe xls, që përfshin përdorimin e linjës së komandës MySQL.

Pra, për të eksportuar të dhënat e MySQL në një skedar csv në këtë mënyrë, ne kemi nevojë për komandën e mëposhtme:

ZGJIDH * NGA databaza_tabela NË OUTFILE "path_and_file_name.csv" FUSHAT E PËRFUNDUARA NGA "," TË MBYLLUR NGA """ RRESHTAT E PËRFUNDUARA NGA "\n";

Si rezultat i ekzekutimit të tij, do të merrni një skedar csv në shtegun që specifikuat kur telefononi, i cili do të hapet saktë në shumicën e redaktuesve modern të fletëllogaritjes. Për çdo rast, ju kujtoj që të vraponi këtë komandë nevojiten vetëm pasi të lidheni me një bazë të dhënash MySQL.

Kjo komandë është gjithashtu e shkëlqyeshme për eksportimin e të dhënave MySQL në një skedar xls shfaqja e saktë në Microsoft Office Excel. Vetëm në këtë rast nuk kemi nevojë për ndarës, sepse ato do të ndërhyjnë në ndarjen e informacionit në qeliza:

SELECT * NGA databaza_tabela NE OUTFILE "path_and_file_name.xls";

Sidoqoftë, në praktikë, jo gjithçka është aq e thjeshtë sa përshkrova. Gjatë ekzekutimit të komandës, mund të hasni gabimin e mëposhtëm në tastierë që pengon përfundimin e eksportit:

GABIM 1290 (HY000): The Serveri MySQL eshte duke vrapuar me--secure-file-priv opsion kështu që nuk mund ta ekzekutojë këtë deklaratë

Shkaktohet nga fakti që serveri juaj MySQL është nisur me opsionin --secure-file-priv. Personalisht, e kam hasur këtë problem për faktin se për të punuar në tastierë përdor kompletin e shpërndarjes MySQL të përfshirë në kompletin WAMP OpenServer, i cili, nga ana tjetër, lëshon serverin MySQL në këtë mënyrë.

Ka dy mënyra për të zgjidhur problemin:

  • Ndryshoni parametrat e nisjes së serverit MySQL
  • Ndrysho rrugën në dosjen përfundimtare Eksporti i MySQL

Metoda e parë më dukej shumë e ndërlikuar, sepse... Do të më duhej të gërmoja në konfigurimin e OpenServer, i cili nuk ishte shkruar nga unë me të gjitha rrethanat që pasuan 🙂 Prandaj, vendosa të marr rrugën e dytë. Nëse hasni problem i ngjashëm- perserit pas meje.

Së pari ju duhet të shkoni në linjën e komandës MySQL dhe të ekzekutoni një nga komandat e mëposhtme:

SHQI NDRYSHORE SI "secure_file_priv"; SELECT @@GLOBAL.secure_file_priv;

Rezultati i ekzekutimit të të dyjave do të jetë vlera e ndryshores globale MySQL sigurt_file_priv, e cila përmban shtegun për në direktorinë përmes së cilës mund të kryhen operacionet e eksportit dhe importimit të të dhënave MySQL (në të ardhmen, një lidhje me një artikull mbi importimin e të dhënave).

Ato. kur përdorni komandat NGARKONI TË DHËNAT Dhe ZGJEDH... INTO OUTFILE skedarët e eksportuar dhe të importuar mund të gjenden vetëm brenda këtij direktori.

Në rastin tim, kjo variabël u vendos në përgjithësi në I PAVLEFSHËM, sepse Unë, siç thashë tashmë, përdor shërbimet MySQL nga shpërndarja e përfshirë në OpenServer për të punuar në tastierë. Kjo vlerë tregoi se operacionet e eksportit dhe importit të të dhënave MySQL duke përdorur komandat e specifikuara ishin mbyllur plotësisht.

Siç doli më vonë, kjo është një situatë e zakonshme kur përdorni serverë WAMP dhe MAMP me kuti.

Fatkeqësisht, në rastin tim nuk ishte e mundur të përdoreshin metodat e zakonshme të ndryshimit të vlerave të variablave globale MySQL:

SET emri_ndryshore = vlera;

Si rezultat, pashë vetëm gabimin e mëposhtëm në tastierë:

ERROR 1238 (HY000) në rreshtin 1: Variabli "secure_file_priv" është një variabël vetëm për lexim.

Si rezultat, për të ndryshuar vlerën e një ndryshoreje sigurt_file_priv dhe hapja operacionet e eksportit dhe importit, më duhej të shkoja në skedarin e konfigurimit MySQL mysql.ini, i cili ndodhet në direktorinë rrënjë të shpërndarjes MySQL, ose mund të aksesohet në një mënyrë tjetër nëse MySQL përfshihet me WAMP/LAMP/ Ndërtimi i serverit MAMP.

Meqë ra fjala, nëse doni të ndryshoni shtegun për në drejtorinë e bobinës së shkëmbimit të skedarëve, do t'ju duhet të bëni të njëjtën gjë.

Në rastin tim, kjo ndryshore ekzistonte tashmë në konfigurim, vetëm në formën e komentuar:

Secure-file-priv = "%dprogdir%\\userdata\\temp"

Nëse nuk e keni atë, atëherë shkruani nga e para në seksion (të paktën për mua ndodhej aty).

Unë e çkomentova dhe vendosa ta përdor në formën në të cilën ishte shkruar. Ato. kur eksportoni të dhëna nga MySQL dhe i importoni përsëri, skedarët e mi tani do të ruhen në një direktori c:\openserver\userdata\temp\.

Pas ndryshimit të konfigurimit (çdo, meqë ra fjala), mos harroni të rinisni serverin tuaj ose një shërbim të veçantë, cilësimet e të cilit i keni redaktuar, nëse është e mundur, që ndryshimet të hyjnë në fuqi!

Për t'u siguruar, pas rinisjes së serverit MySQL, shfaqni përsëri variablin sigurt_file_priv dhe kopjoni vlerën e tij në clipboard.

Dhe tani duhet të thërrasim komandën si në fillim, vetëm përpara emrit të skedarit në të cilin do të ruhen informacionet nga baza e të dhënave MySQL, shkruani shtegun e ruajtur në variablin që po ndryshojmë në formën e mëposhtme:

ZGJIDH * NGA databaza_tabela NË OUTFILE "secure_file_priv_value\file_name.csv";

Pas kësaj, eksportimi i të dhënave nga MySQL funksionoi në rastin tim.

Pika e rëndësishme! Nëse punoni me MySQL nën Windows, atëherë mos harroni të ndryshoni "\" në "/" kur specifikoni shtegun e skedarit, përndryshe gabimi do të jetë --secure-file-priv do të vazhdojë të shfaqet ende.

Ky është artikulli se si të hidhni një bazë të dhënash MySQL dhe tabelat e saj, si dhe të jepni të dhëna nga tabelat MySQL në formate të ndryshme, i vjen fundi. Shkruani komentet tuaja në komente dhe ndani me të gjithë opsionet tuaja të skenarit që përdorni më shpesh në praktikë.

Nëse ju pëlqeu artikulli, mund ta falënderoni autorin duke e ripostuar artikullin në mediat sociale ose financiarisht duke përdorur formularin e mëposhtëm, në mënyrë që të mund të paguani për hostimin bazë.

Fat të mirë për të gjithë dhe shihemi përsëri! 🙂

P.S.: nëse keni nevojë për një faqe interneti ose keni nevojë të bëni ndryshime në një ekzistuese, por nuk ka kohë apo dëshirë për këtë, unë mund të ofroj shërbimet e mia.

Me shume se 5 vite eksperience zhvillimi profesional i faqes në internet. Punojnë me PHP

./mysql -u -fq H < db_dump-file

2018-12-04T00:00Z

2018-12-11T00:00Z

Kur krijojmë një skedar hale me mysqldump, ai përmban një skript të madh SQL për të rikrijuar përmbajtjen e bazës së të dhënave. Pra, ne e rivendosim atë duke ekzekutuar linjën e komandës së klientit MySQL:

Mysql -uroot -p

(ku root është emri ynë i përdoruesit të administratorit për MySQL) dhe pas lidhjes me bazën e të dhënave na duhen komanda për të krijuar bazën e të dhënave dhe për të lexuar skedarin:

Krijo bazën e të dhënave new_db; përdorni new_db; \. dumpfile.sql

Detajet do të ndryshojnë në varësi të opsioneve të përdorura gjatë krijimit të skedarit hale.

2018-12-18T00:00Z

Ju vetëm duhet të ekzekutoni këtë:

mysql -p -u< db_backup.dump

Nëse hale përmban shumë baza të të dhënave, duhet të hiqni emrin e bazës së të dhënave:

mysql -p -u< db_backup.dump

Për të ekzekutuar këto komanda, hapni një komandë (në Windows) dhe cd në drejtorinë ku ndodhet mysql.exe skedari i ekzekutueshëm mysql.exe (mund t'ju duhet të mendoni pak për të, kjo do të varet nga mënyra se si keni instaluar mysql, d.m.th. i pavarur ose si pjesë e një pakete të tillë si WAMP). Kur jeni në këtë direktori, thjesht duhet të futni komandën.

2018-12-25T00:00Z

Duhet të jetë aq e thjeshtë sa të ekzekutoni këtë:

Mysql -u -fq< db_backup.dump

Nëse hale ka një bazë të dhënash të vetme, mund t'ju duhet të shtoni një rresht në krye të skedarit:

PËRDORIMI ;

Nëse është një hale e shumë bazave të të dhënave, deklaratat e përdorimit janë tashmë atje.

Për të ekzekutuar këto komanda, hapni një linjë komande (në Windows) dhe cd në direktorinë ku mysql.exe përmban ekzekutuesin mysql.exe (mund të duhet të mendoni pak për këtë, kjo do të varet nga mënyra se si keni instaluar mysql, d.m.th. i pavarur ose si pjesë e një pakete të tillë si WAMP). Pasi të jeni në atë drejtori, thjesht mund të shkruani komandën siç bëra më lart.

2019-01-01T00:00 Z

Komandë me një linjë për të rivendosur SQL të gjeneruar nga mysqldump

Mysql -u -fq E "burimi

2019-01-08T00:00Z

Duke përdorur një skedar hale 200 MB të krijuar në Linux për të rivendosur në Windows me mysql 5.5, kisha më shumë sukses Me

Dosja burimore.sql

Qasja e linjës së komandës mysql sesa përdorimi

mysql< file.sql

Qasja e linjës së komandës që shkakton një gabim të vitit 2006 "serveri ka lënë" (në Windows)

Mjaft e çuditshme, shërbimi i krijuar gjatë (mysql)instalimit i referohet një skedari my.ini që nuk ishte aty. Kam kopjuar skedarin e shembullit "të madh" në my.ini, të cilin e kisha modifikuar tashmë me rritjen e rekomanduar.

Vlerat e mia

Maksimumi i_lejuar_paketë = 64 milion interaktive_kohë = 250 kohë_pritje = 250

2019-01-15T00:00Z

Si shembull konkret përgjigja e mëparshme:

Më duhej të rivendosja kopjen rezervë që të mund ta importoja/transferoja atë SQL Server. Unë instalova vetëm MySql, por nuk e regjistrova si shërbim ose nuk e shtova në rrugën time pasi nuk kam nevojë ta ekzekutoj.

une e perdora Windows Explorer për të vendosur skedarin tim dump në C:\code\dump.sql. Pastaj hapni MySql nga artikulli i menysë Start. Krijoi DB-në, më pas ekzekutoi komandën e burimit me shtegun e plotë si kjo:

Mysql> krijoni bazën e të dhënave temp mysql> përdorni temp mysql> burimin c:\code\dump.sql

Hedhja dhe rivendosja e një baze të dhënash MySQL është mjaft e thjeshtë dhe e përshtatshme për t'u bërë nga distanca nëpërmjet SSH ose drejtpërdrejt përmes tastierës së serverit. Nga distanca, kjo mund të bëhet duke përdorur programet Putty/Kitty. Ju gjithashtu mund të kryeni shembujt e mëposhtëm në Windows duke ekzekutuar vijën e komandës ' cmd'. Më poshtë janë shembuj se si të krijoni deponime të bazës së të dhënave MySQL dhe më pas t'i rivendosni ato nëse është e nevojshme, për shembull për faqen tuaj të internetit, dyqanin online ose ndonjë projekt tjetër.

Krijimi i një baze të dhënash MySQL

Për të ekzekutuar këto komanda, lidheni nga distanca me serverin tuaj nëpërmjet SSH duke përdorur një nga programet e listuara më sipër. Pas lidhjes dhe autorizimit me serverin/hosting, mund të futni komandat më poshtë.

# Rezervoni një bazë të dhënash në skedarin dump_file.sql mysqldump -uroot -p your_base > dump_file.sql # On hale dritareshËshtë më mirë të krijosh një komandë paksa të ndryshme që parandalon # mbishkrimin aksidental të linjave dump për shkak të konvertimit të karaktereve të linjës së re "\r\n" në "\n" mysqldump -uroot -p your_base -r dump_file_utf8.sql # Nëse keni nevojë për kopje rezervë vetëm të tabelave individuale, dhe jo të gjithë bazës së të dhënave # (specifikoni emrat e tabelave të ndara me një hapësirë ​​pas emrit të bazës së të dhënave) mysqldump -uroot -p your_base TABLE1 TABLE2 TABLE3 > dump_file.sql # Nëse keni nevojë të krijoni një kopje rezervë vetëm të bazës së të dhënave struktura pa vetë të dhënat mysqldump -uroot -p -- no-data your_base > dump_file.sql # Rezervoni të gjitha bazat e të dhënave në skedarin aktual_date.gz mysqldump -uroot -p --all_bazat e të dhënave | gzip -c > "data "+%Y-%m-%d"".gz # Rezervimi, ku krijohet një INSERT i veçantë për çdo hyrje # dhe me tregues i qartë kodimi i bazës së të dhënave UTF-8 mysqldump -uroot -p --default-character-set=utf8 your_base --extended-insert=FALSE | gzip -c > "data "+%Y-%m-%d"".gz

# Rezervoni një bazë të dhënash në dump_file.sql

mysqldump - uroot - p your_base > dump_file . sql

# Në Windows është mirë të krijoni një hale me një komandë paksa të ndryshme që parandalon

# mbishkrim i rastësishëm i linjave të grumbulluara për shkak të konvertimit të karaktereve të linjës së re "\r\n" në "\n"

mysqldump - uroot - p your_base - r dump_file_utf8 . sql

# Nëse keni nevojë për kopje rezervë vetëm të tabelave individuale, dhe jo të gjithë bazës së të dhënave

# (tregoni emrat e tabelave të ndara me një hapësirë ​​pas emrit të bazës së të dhënave)

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

# Nëse keni nevojë të bëni kopje rezervë vetëm të strukturës së bazës së të dhënave pa vetë të dhënat

mysqldump - uroot - p -- no - data your_base > dump_file . sql

# Rezervoni të gjitha bazat e të dhënave në skedarin aktual_date.gz

mysqldump - uroot - p -- të gjitha_bazat e të dhënave | gzip - c > "data "+%Y-%m-%d"" . gz

# Rezervimi, ku krijohet një INSERT i veçantë për çdo hyrje

# dhe duke specifikuar në mënyrë eksplicite bazën e të dhënave që kodon UTF-8

mysqldump - uroot - p -- default - karakter - set = utf8 your_base -- extensioned - insert = FALSE | gzip - c > "data "+%Y-%m-%d"" . gz

Në shembullin e mësipërm, programi përdoret për të krijuar një kopje rezervë mysqldump, e cila është përfshirë me mysql. Më poshtë janë parametrat për krijimin e një kopje rezervë të bazës së të dhënave, të cilat do t'i shqyrtojmë më në detaje:

  • -u– parametri specifikon hyrjen që do të përdoret për t'u lidhur me bazën e të dhënave. Në shembull, ne përdorim hyrjen rrënjësore, e cila duhet të specifikohet në këtë parametër pa hapësirë! Si rezultat, duket si -uroot
  • -fq- parametri tregon që ju duhet të vendosni një fjalëkalim për hyrjen e specifikuar. E lamë bosh, si rezultat i së cilës fjalëkalimi do të duhet të futet pasi të shtypni "Enter" gjatë ekzekutimit të komandës. Sidoqoftë, mund të specifikoni fjalëkalimin pikërisht këtu, si në parametrin e hyrjes, pa një hapësirë ​​​​pas -p, megjithatë, kjo metodë nuk është e sigurt, pasi tastiera ruan komandat tuaja në një skedar log dhe nëse nuk e pastroni rregullisht, mund të shihet nga një sulmues.
  • bazën tuaj– në vend të kësaj rreshti në shembull, duhet të specifikoni Emri i vërtetë Baza juaj e të dhënave për të cilën po krijoni një kopje rezervë.
  • > – një operator që tregon drejtimin e veprimit, d.m.th. sikur tregon se do të shkruani nga baza e të dhënave në një skedar.
  • dump_file.sql– ky është emri i skedarit tuaj .slq në të cilin duhet të ruani bazën e të dhënave. Tregohet me një hapësirë ​​pas operatorit ">". Ju mund të specifikoni ndonjë emër tjetër. Për shembull, në mënyrë që sistemi të futet automatikisht në emër koha aktuale, thjesht specifikoni një rresht si:

    "data "+%Y-%m-%d""

    "data "+%Y-%m-%d""


    pas kësaj rreshti në shembull, shtrirja e skedarit tregohet ' .gz'. Si rezultat, një skedar si ' 2014-11-15.gz‘.

    Kujdes! Nëse specifikoni vetëm emrin e skedarit, ai do të ruhet në të njëjtën direktori në lidhje me të cilën e ekzekutoni këtë komandë. Ato. nëse shihni diçka të tillë në vijën e komandës # , Ku root@dvs ky është emri i hyrjes dhe serverit, skedari do të krijohet në drejtori /shtëpi. Për të ndryshuar ruajtjen e skedarit në një shteg tjetër, specifikoni shtegun e plotë për të ruajtur skedarin në vend të emrit, për shembull: /var/www/backup/dump_file.sql.

  • Në shembullin e dytë, në vend të operatorit ' > Përdoret 'operator' | ’, që tregon nevojën për të kryer komandë shtesë gzip me parametrin ' -c' i cili ju lejon të paketoni menjëherë deponinë në një arkiv dhe vetëm atëherë ta ruani atë në një skedar si ' 2014-11-15.gz', siç raportohet nga operatori' > ‘.
  • Parametri -nuk ka të dhëna ju lejon të hidhni vetëm strukturën e bazës së të dhënave pa vetë të dhënat. Mjaft e dobishme në disa raste kur të dhënat nuk janë të nevojshme.
  • Opsione –default-character-set=utf8 Dhe –extended-insert=FALSE. E para ju lejon të specifikoni në mënyrë eksplicite kodimin që përdoret nga kjo bazë të dhënash, duke shmangur kështu ruajtjen e bazës së të dhënave në kodimin e gabuar, në vend të utf8, mund të specifikoni çdo kodim tjetër, për shembull cp1251. Parametri i dytë ju lejon të specifikoni që një komandë e veçantë INSERT duhet të krijohet për çdo rekord gjatë eksportimit. Në disa raste, kjo mund të kërkohet kur të rikthehen pjesërisht të dhënat nga një hale.
  • Rivendosja e një baze të dhënash nga një skedar MySQL Dump

    Tani le të shohim procesin e kundërt të rivendosjes së një baze të dhënash nga një skedar hale. Ky veprim kryhet duke përdorur programin mysql. Le të shohim një shembull menjëherë.

Ju ndoshta ju është dashur të importoni deponitë e bazës së të dhënave më shumë se një herë. Dhe pavarësisht nga banaliteti i kësaj detyre, shpesh lindin pyetje dhe ndonjëherë probleme që lidhen me këtë. Më poshtë është i gjithë kodi që ju nevojitet për të aplikuar shpejt një deponim të bazës së të dhënave nga vija e komandës.

SET EMRAVE utf8; DOP BAZA E TË DHËNAVE `mydb`; KRIJO BAZA E TË DHËNAVE `mydb` SET E PARAKTUAR E KARAKTERVE utf8; PËRDORIMI `mydb`; SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET autocommit=0; VENDOSI kontrollet e_çelësave të huaj=0; SET_kontrollet unike=0; BURIMI /rruga/to/db_dump.sql; KOMITET; SET autocommit=1; VENDOSI kontrollet e_çelësave të huaj=1; VENDOSI kontrollet_unike=1;

Këto komanda do t'ju lejojnë të importoni shpejt një depon të bazës së të dhënave dhe të shmangni problemet. Për më tepër, disa nga këto probleme nuk zgjidhen as nga klientët e zakonshëm mysql, si phpMyAdmin dhe të tjerët.

Le të përpiqemi ta kuptojmë këtë kod në rregull.

SET EMRAVE utf8; thotë se shkëmbimi i të dhënave do të bëhet në kodimin UTF-8 dhe aty ndodhet skedar origjinal Depon e bazës së të dhënave dhe kjo është ajo që do të ketë baza e të dhënave përfundimtare.

DOP BAZA E TË DHËNAVE `mydb`; Dhe KRIJO BAZA E TË DHËNAVE `mydb` SET E PARAKTUAR E KARAKTERVE utf8; kryejnë shkatërrimi baza e të dhënave dhe krijimi i saj pasues me kodimin e paracaktuar UTF-8. Është e qartë se kjo do të fshijë të gjitha tabelat dhe të dhënat në to, por kjo do të na japë besimin se baza e të dhënave që rezulton do të korrespondojë plotësisht me të dhënat në skedarin hale.

PËRDORNI `mydb`; tregon se kjo bazë të dhënash të veçantë duhet të përdoret për të gjitha komandat nga skedari dump (kontrolloni skedarin dump për praninë e kësaj direktive duke treguar një bazë të dhënash të ndryshme për të shmangur konfuzionin).

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";çaktivizon rritjen e numëruesit të rritjes automatike kur shkruani vlerën 0 në fushën e rritjes automatike Si parazgjedhje, kur shkruani në një fushë të tillë vlera NULL ose 0 rritet automatikisht. Dhe megjithëse të kesh një vlerë prej 0 në një fushë auto-inkrementale nuk është praktika më e mirë, ndonjëherë ndodh që ende të ketë vija të tilla në hale (diçka të ngjashme kam hasur në një hale nga Magento). Vlen gjithashtu të përmendet se mysqldump e ka përfshirë këtë direktivë si parazgjedhje në deponitë e saj prej disa kohësh.

SET autocommit=0; përpara se të ngarkoni deponinë dhe KOMITET; pas tij, ata shpejtojnë ekzekutimin e INSERT-ve për tabelat InnoDB, pasi kur aktivizohet modaliteti i kryerjes automatike, regjistrat ruhen në disk me çdo INSERT. Mund të ndihmojë kur rrotullohen deponitë e mëdha.

VENDOSI kontrollet e_çelësave të huaj=0; opsioni më i dukshëm, pa të cilin shumica e deponive nuk mund të aplikoheshin fare. Çaktivizon kontrollet e çelësave të huaj, gjë që lejon që të dhënat të shkruhen në çdo mënyrë, duke përfshirë me lidhje rrethore me çelësa të huaj. Ky opsion gjithashtu përshpejton importin në dump.

SET_kontrollet unike=0;çaktivizon kontrollet e unike për çelësat dytësorë, të cilët përsëri mund të përshpejtojnë procesin e importimit.

Dhe së fundi, ekipi kryesor, për hir të së cilës ishte planifikuar e gjithë kjo - BURIMI /rruga/to/db_dump.sql; importon direkt deponinë bazat e të dhënave mysql nga skedari i specifikuar. Rruga drejt skedarit mund të jetë absolute ose relative me drejtorinë nga e cila keni aksesuar në tastierën mysql.

Dhe pasi të përfundojë importi, ne rikthejmë vlerën e flamujve, megjithëse kjo nuk duhet të bëhet, sepse komanda SET në mysql, si parazgjedhje, ndryshon vlerat e variablave vetëm në kontekstin e sesionit aktual.

Bërja e një databaze dump (backup) është shumë e rëndësishme. Kështu bëra disa komente me shembuj për këtë dobishmëri e shkëlqyer si mysqldump.

mysqldump - një mjet që ju lejon të hidhni përmbajtjen e një baze të dhënash ose një grup bazash të dhënash për të krijuar kopje rezervë ose dërgimi i të dhënave në një server tjetër të bazës së të dhënave SQL (jo domosdoshmërisht një server MySQL). Deponia do të përmbajë një grup komandash SQL për të krijuar dhe/ose mbushur tabelat.

mysqldump-u rrënjë -p -f emri_baza e të dhënave >

Me këtë komandë ne bëjmë një kopje rezervë të bazës së të dhënave nën emrin name_database në diskun C në skedarin mydb_backup_name_database.txt

Ju nuk keni nevojë të krijoni skedarin MySQL do ta krijojë atë vetë.

mysql-u rrënjë -p -f emri_baza e të dhënave< C:\mydb_backup_name_database.txt

Me këtë komandë ne importojmë të dhëna rezervë nga skedari C:\mydb_backup_name_database.txt

Shënim: -f, --force është një opsion që specifikon të vazhdojë edhe nëse merret një gabim SQL, d.m.th. injoroni gabimet. Për shembull, nëse një rresht identik ekziston tashmë në tabelë.

Për të shmangur kërkesën për një fjalëkalim, duhet ta shkruani menjëherë pas -p, domethënë pa hapësira. Nëse fjalëkalimi Pwd, atëherë shembulli do të duket si ky:

mysqldump-u rrënjë -p Pwd-f emri_baza e të dhënave > C:\mydb_backup_name_database.txt

Nëse e përdorni shpesh këtë komandë, atëherë është më mirë të krijoni një përdorues të veçantë me të drejtat e nevojshme për të zvogëluar dukshmërinë e fjalëkalimit rrënjë.

Le të shqyrtojmë më shumë cilësimet e shkëlqyera mysqldump:

-- bazat e të dhënave lejon mysqldump të përfshijë komandat CREATE DATABASE /*!33333 IF NUK EKSISTS*/ DBNAME dhe USE DBNAME në skriptin e rikuperimit. Kjo do t'ju lejojë të krijoni bazat e të dhënave të punës nga e para. Kjo do të thotë, pa përdorur --database, supozohet se përdoruesi është duke rivendosur një bazë të dhënash të vetme dhe duke specifikuar në mënyrë eksplicite se ku duhet të vendosen të dhënat e restauruara. Nëse krijohet një kopje rezervë me qëllimin për të bërë një kopje plotësisht funksionale të të dhënave, për shembull, në një server tjetër MySQL, atëherë duhet të përdorni këtë çelës;

-- të gjitha bazat e të dhënave ju lejon të bëni kopje të të gjitha bazave të të dhënave që ekzistojnë në një server të caktuar MySQL. Nëse ju duhet të bëni kopje të vetëm disa bazave të të dhënave, ju vetëm duhet t'i specifikoni ato të ndara me një hapësirë ​​kur thirrni mysqldump nga linja e komandës (shih më lart);

Celës --ndihmë. Programi mysqldump ka shumë versione. Ju mund të shihni se cilat veçori mbështeten në mënyrë specifike nga versioni juaj duke përdorur këtë çelës;

--add-drop-tabela- një ndërprerës që do të detyrojë mysqldump të shtojë një komandë të tabelës drop në skriptin që rezulton përpara se të krijojë tabela. Kjo do t'ju lejojë të shmangni disa gabime kur rivendosni një bazë të dhënash nga një kopje rezervë. Natyrisht, duhet të keni parasysh që tabelat e vendosura në kopjen e punës (nëse tabelat me të njëjtin emër ekzistojnë në kopje rezervë) do të fshihen nga baza e të dhënave kryesore dhe do të rikrijohen nga kopja rezervë përpara se të rikthehen nga rezervimi;

--nuk ka të dhëna. Duke përdorur këtë çelës, mund të bëni shpejt një kopje të strukturës së tabelës/bazës së të dhënave pa vetë të dhënat. Për shembull, ju keni krijuar një tabelë komplekse dhe dëshironi të ruani strukturën e saj për të ardhmen, por nuk ju nevojiten vetë të dhënat që janë në këtë tabelë në një kopje rezervë;

--skedari-rezultati=...- ky ndërprerës mund të përdoret për të ridrejtuar daljen në një skedar. Ju mund të përdorni ridrejtimin e rregullt të Unix me komandën ">", ose mund të përdorni këtë çelës. Kush pëlqen çfarë;

Një tjetër shumë këshilla të dobishme në përdorimin e mysqldump në një mjedis pritës. Si rregull, kur përdorni hostimin, përdoruesit i vendosen disa kufizime. Për shembull, nuk mund të huazoni më shumë se një shumë e caktuar kujtesa fizike(RAM, RAM). mysqldump si parazgjedhje vendos të gjitha të dhënat e marra nga serveri MySQL në memorie dhe më pas i shkruan të gjitha në disk. Prandaj, nëse ofruesi ju lejon të huazoni, për shembull, 30 MB memorie, dhe baza e të dhënave, të cilën po kopjoni duke përdorur mysqldump, zë 50 MB, natyrisht, këtu do të lindë një gabim - mysqldump nuk do të jetë në gjendje të funksionojë siç duhet dhe do të rrëzohet, për të cilën do t'ju informojë. Për të "detyruar" mysqldump të shkruajë të dhënat direkt në disk, në vend që t'i ruajë ato, qoftë edhe përkohësisht, në memorie, përdorni çelësin -- shpejt. Kjo do ta zgjidhë problemin.

Këtu janë disa shembuj më të dobishëm:

mysqldump -u rrënjë -p Pwd-f --default-character-set=cp1251 DBNAME| gzip -c > filename.txt .gz

Ju mund ta shpaketoni një arkiv të tillë me komandën:

gunzip filename.txt.gz

Për të ditur se në cilën datë është bërë rezervimi, mund të shkruani komandën e mëposhtme:

mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME | gzip -c > `data "+%Y-%m-%d"`.gz

dhe nëse duhet të bëni hale me kodime të ndryshme, atëherë është e përshtatshme të përdorni variabla:

vendosur DBKARAKTER= utf8

vendosur DBNAME= shkelje

mysqldump -u rrënjë -p Pwd-f --default-character-set=$ DBKARAKTER $DBNAME| bzip2 -c > sql. $DBNAME.`datë "+%Y-%m-%d"`.bz2

Nëse dëshironi të automatizoni heqjen e arkivave të vjetra, provoni të përdorni cron dhe komandën find, e cila zakonisht gjendet në unix. Vrapimi periodikisht

Gjej~/directory-with-archives -emri "*.gz" -mtime +7 -exec rm -f () \;

Kështu, ju do të fshini arkivat që janë "më të vjetër" se shtatë ditë.

Artikujt më të mirë mbi këtë temë