Eksportoni bazën e të dhënave, importoni bazën e të dhënave MySQL. Si të eksportoni (shkarkoni) dhe importoni (ngarkoni) baza të të dhënave të mëdha MySQL? Si të eksportoni të dhëna në mysql

Pershendetje miq! 🙂

Sot vendosa të vazhdoj bisedën rreth punës me MySQL në tastierë dhe t'i kushtoj vëmendje procedurës për eksportimin e një baze të dhënash 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ë një skedar Excel dhe format csv.

Ne do të shikojmë opsione të ndryshme për marrjen e informacionit nga: krijimi i një depozite të një ose disa bazave të të dhënave, eksportimi i të dhënave nga tabelat individuale dhe rezultate arbitrare ZGJIDH kërkesat.

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 se si të eksportoni të dhëna 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, është material me cilësi të lartë, 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 administrator i sistemit që mund të përfitojë nga informacioni 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, mund të kufizoheni në leximin e informacionit në lidhjen e mësipërme. .

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

Kjo përfundon pjesën hyrëse dhe kalojmë në një rishikim të komandave të konsolës për krijimin e një baze të dhënash MySQL, të cilën 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 lëshohet, 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 është në dijeni, një kopje rezervë e një baze të dhënash MySQL është, në thelb, një hale e saj e bërë në një periudhë të caktuar kohe, 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- kjo është thjesht nxjerrja e informacionit nga tabelat në formë teksti për punë të mëtejshme me redaktuesit e tekstit 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ë vijës së 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ë tastierën MySQL për ta transferuar atë në një server tjetër ose kopjim të brendshëm, 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 restaurimin dhe kopjimin e bazave të të dhënave të tëra.

Ne do të flasim më tej se si të bëjmë kopje rezervë të disa tabelave MySQL dhe të marrim të dhënat e tyre në formë të lexueshme.

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, ... > path_and_dumpfile_name

Kur thërrisni 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, dalja do të jetë një skedar teksti i rregullt që 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 në një redaktues teksti të rregullt, 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ë formatin xls ose csv në mënyrë që skedari që rezulton të shfaqet saktë në redaktuesit e fletëllogaritjes, atëherë ne do t'ju tregojmë se si ta bëni 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ë mund të gjeni një listë të plotë të parametrave dhe opsioneve për thirrjen e kësaj komande këtu - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

Për të përfunduar ekskursionin tim të shkurtër në mysqldump, do të doja të jepja një variant të thirrjes së një komande me një listë parametrash për të krijuar një depon 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ë telefonatë e rregullt:

mysqldump -u user_name -h host_ose_IP_MySQL_server -p --no-autocommit --opt database_name > path_and_dump_file_name;

Për hir të eksperimentit, e përdora këtë opsion për të hedhur një bazë të dhënash MySQL me madhësi 143 MB. 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ë rastin e një sasie të caktuar të dhënash. 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 shtesat xls dhe xlsx kanë skedarë të krijuar në Microsoft Office Excel, i cili funksionon vetëm nën Windows, ndërsa skedarët csv janë më universalë dhe operacionet me to janë të mundshme në shumë redaktues.

Kjo nuk do të thotë që xls nuk do të hapet askund përveç Microsoft Office Excel. I njëjti OpenOffice konfirmon të kundërtën.

Por që kjo të jetë e mundur, kjo mbështetje duhet të jetë e pranishme në produktin softuer. 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 ju mund të eksportoni vetëm rezultatet e pyetjeve SQL në xls ose csv, me të cilat 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 disa skedarë xls në tastierë menjëherë, atëherë shkruani për 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ë.

Ju mund të eksportoni të dhëna nga një bazë të dhënash MySQL në formatet csv dhe xls direkt në konsolën e serverit duke përdorur komandat e mëposhtme.

Aktiv Linux sistemet:

Mysql -u username -d database_name -p -e "SELECT * FROM database_tabela;" | 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:

Fatkeqësisht, eksportimi i të dhënave nga tabelat MySQL në csv duke përdorur komandën e mësipërme nuk do të funksionojë në këtë rast, sepse Windows, ndryshe nga Linux, nuk ka një komandë të integruar të konsolës për të punuar me threads, si sed në Linux.

Sigurisht, mund ta instaloni, por është shumë telash. Përndryshe, ju mund të përdorni CygWin— Emulator i konsolës Linux për sistemet Windows.

Është mirë nëse e keni të instaluar tashmë. 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 provova personalisht:

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

Ky skedar u hap 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, ndoshta nëse kryeni ndonjë veprim specifik në Microsoft Office Excel, do të shfaqen probleme në të ardhmen; nuk kam gërmuar aq thellë. Kur i shikova normalisht të dhënat, 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 më pas të dhënat nga fusha të ndryshme të tabelës do të shkruhen në masë, pa ndarës, të cilët mund të mos shfaqen mirë në programe të ndryshme për punën me tabela, 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 redaktorët e tjerë të tabelës do të bëjnë të njëjtën gjë.

Prandaj, kur eksportoni një bazë të dhënash MySQL në skedarë csv, duhet ta bëni këtë duke ndarë informacionin me karaktere speciale që kuptohen nga redaktorët.

Dhe pastaj gradualisht iu afrova metodës së dytë të eksportimit të të dhënave MySQL në csv dhe xls, që është përdorimi i 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 se duhet ta ekzekutoni këtë komandë vetëm pasi të lidheni me bazën e të dhënave MySQL.

Kjo komandë është gjithashtu e shkëlqyeshme për eksportimin e të dhënave MySQL në një skedar xls për shfaqje të 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 database_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:

ERROR 1290 (HY000): Serveri MySQL po funksionon me opsionin --secure-file-priv 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
  • Ndryshoni shtegun drejt skedarit përfundimtar të eksportit 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 një problem të ngjashëm, përsërisni 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 i 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 ZGJIDH... 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 importimit 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 variabla_emri = 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 i 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 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).

E hoqa nga komenti 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 i 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.

Kjo përfundon artikullin se si të hidhni një bazë të dhënash MySQL dhe tabelat e saj, si dhe të nxirrni të dhëna nga tabelat MySQL në formate të ndryshme. 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ë rrjetet sociale ose duke përdorur financiarisht formularin e mëposhtëm në mënyrë që të mund të paguani për pritjen bazë.

Fat të gjithëve 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ë ose 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

Bazat e të dhënave (ose shkurtuar si DB) në shumicën e sajteve kanë një madhësi (peshë) prej disa dhjetëra MB (megabajt). Madhësia fillestare e bazës së të dhënave në fillimin e projekteve të ndryshme varet nga struktura e vetë faqes (CMS), por më pas pesha e tyre rritet me çdo paraqitje të një rekordi të ri.

Të dhënat mund të përfshijnë informacione rreth regjistrimit të përdoruesit, komente, mesazhe personale, produkte, lajme dhe të dhëna të tjera të ruajtura në bazën e të dhënave të faqes.

Pata mundësinë të punoja me disa sajte, madhësia e bazës së të dhënave të të cilave tejkaloi 500 MB (magabytes), dhe në disa madje arriti 2 GB (gigabajt). Meqenëse bazat e të dhënave të kësaj madhësie janë të vështira për t'u transferuar duke përdorur metoda standarde (për shkak të kufizimeve të pritjes dhe shfletuesit), unë do të ndaj me ju disa metoda pune që do t'ju ndihmojnë të zgjidhni probleme të tilla (migrimi i bazave të të dhënave të mëdha).

Eksportoni (shkarkoni) bazat e të dhënave të mëdha MySQL përmes Sypex Dumper

Pra, le të fillojmë shqyrtimin tonë për zgjidhjen e problemeve në fjalë me një opsion më të lehtë, domethënë, me një zgjidhje të gatshme.

"Sypex Dumper" është një produkt softuerësh i shkruar në PHP që ju lejon të punoni me bazat e të dhënave pa përdorur phpMyAdmin. Përparësitë e Sypex Dumper përfshijnë:

  1. Shumëgjuhësh (mbështet shumë gjuhë).
  2. Ekziston një version falas i skenarit (për qëllimet tona kjo është mjaft e mjaftueshme).
  3. Shpejtësi e lartë e përfundimit të detyrës.
  4. Puna me baza të të dhënave të mëdha.
  5. Ndërfaqe e përshtatshme dhe intuitive.
  6. Dhe shumë "patate të skuqura" të tjera interesante.

Kjo është ajo që ne do të përdorim për të shkarkuar (transferuar) baza të të dhënave të mëdha.

Për të eksportuar (marrë, shkarkuar) bazën e të dhënave të një faqeje të caktuar tuajën për përdorim të mëtejshëm, duhet të bëni sa më poshtë.

1. falas nga faqja jonë e internetit.

2. sxd në një mënyrë të përshtatshme për ju.

3. Tjetra, shkoni në adresën (ku your_site.ru Për të hyrë».

4. Në faqen që hapet (nëse autorizimi është i suksesshëm), klikoni një herë në seksionin " Eksporti» në menunë e sipërme. Nëse përdoruesi ka disa baza të dhënash, zgjidhni atë që do të eksportojmë (shkarkojmë) nga lista rënëse. Ju mund të lini pjesën tjetër të cilësimeve të pandryshuara dhe të klikoni në " Ekzekutoni».


Dua të shënoj, që mund të eksportoni jo të gjithë bazën e të dhënave, por vetëm disa nga tabelat e saj sipas nevojës.

5. Pasi të ketë përfunduar procesi i ruajtjes së bazës së të dhënave (ju mund ta kuptoni këtë nga shiriti i progresit), mund të shkarkoni bazën e të dhënave që ju nevojitet duke klikuar në butonin e duhur.


Përveç kësaj, të gjitha bazat e të dhënave të eksportuara do të ruhen në faqen tuaj të internetit gjatë rrugës /sxd/backup/. Nëse ruajtja e bazës së të dhënave dështon, kontrolloni që dosja rezervë Lejet e shkrimit janë 777.

Kjo përfundon eksportimin (shkarkimin) e bazës së të dhënave.

Importoni (shkarkoni) bazat e të dhënave të mëdha MySQL përmes Sypex Dumper

Më lart, ne ju shpjeguam se si të merrni bazën e nevojshme të të dhënave; tani ju duhet ta transferoni (importoni) atë në një projekt tjetër, dhe për ta bërë këtë ne bëjmë sa më poshtë.

1. falas nga faqja jonë e internetit.

2. Shpaketoni arkivin dhe ngarkoni dosjen në faqen e internetit sxd në një mënyrë të përshtatshme për ju.

3. Në dosje /sxd/backup/ ngarkoni bazën e të dhënave të marrë (të shkarkuar) më parë.

4. Më pas shkoni në adresë http://your_site.ru/sxd/index.php(ku your_site.ru– domeni i faqes suaj të internetit), pas së cilës do të hapet një formular për futjen e të dhënave para jush. Në të tregoni të dhënat e përdoruesit që ka të drejtë të menaxhojë bazën e të dhënave që ju nevojitet dhe klikoni " Për të hyrë».

5. Në faqen që hapet (nëse autorizimi është i suksesshëm), klikoni një herë në seksionin " Importi» në menunë e sipërme. Nëse përdoruesi ka disa baza të dhënash, zgjidhni atë në të cilën do të importojmë (ngarkuar) të dhëna nga lista rënëse. Ju mund të lini cilësimet e mbetura të pandryshuara dhe të klikoni në " Ekzekutoni».


Dua të shënoj që nuk mund të importoni të gjithë bazën e të dhënave, por vetëm disa nga tabelat e saj sipas nevojës.

6. Pasi të përfundojë procesi i importimit (ngarkimit) të bazës së të dhënave (ju mund ta kuptoni këtë nga shiriti i progresit), detyra mund të konsiderohet e përfunduar.


Eksportoni (shkarkoni) bazat e të dhënave të mëdha MySQL përmes terminalit SSH

SSH është një protokoll rrjeti që ju lejon të menaxhoni në distancë (nëpërmjet komandave speciale) një sistem ose server. Në Windows, ka shumë programe për të punuar me këtë protokoll, më i popullarizuari prej të cilëve është "PuTTY".

Në disa site pritëse, të tilla si, për shembull, ekziston një Terminal i integruar pikërisht në panelin e kontrollit. Le të mos shkojmë larg dhe të shqyrtojmë problemin e përshkruar në titull duke përdorur shembullin e tij. Vlen të theksohet që operacionet e përshkruara më poshtë mund të kryhen në një klient të veçantë SSH.

1. Nisni Terminalin. Duket kështu:


2. Nëse lidheni me serverin përmes një programi të palës së tretë, regjistrohuni në të duke futur të dhënat e duhura (mund t'i merrni në panelin e kontrollit të hostit ose nga ofruesi juaj i pritjes).

e dyta- Kjo:

Mysqldump -u EMRI I PERDORIMIT -p BAZA E TË DHËNAVE > backup.sql

drejtpërdrejt vetë eksportin, ku:

EMRI PERDORUES– identifikimi i përdoruesit që ka akses në bazën e të dhënave.

BAZA E TË DHËNAVE– emri i bazës së të dhënave që duam të eksportojmë.

backup.sql– emri i skedarit në të cilin do të ruhet baza e të dhënave dhe shtegu në lidhje me . Me këtë dizajn, baza e të dhënave do të ruhet në rrënjën e hostimit.

4. në hapin e tretëHyni"në tastierë. shënim

Pasi serveri të jetë gati të pranojë përsëri komandat përmes SSH, kjo do të thotë që eksporti i bazës së të dhënave ka përfunduar dhe ju mund ta shkarkoni atë përmes FTP ose përmes menaxherit të skedarëve pritës.

Procesi i eksportit (dhe importit) nuk transmetohet në SSH dhe nëse databaza juaj është mjaft e madhe, jini të durueshëm, pasi mund të merrni një përgjigje nga serveri pas më shumë se 20 minutash.

Importoni (shkarkoni) bazat e të dhënave të mëdha MySQL përmes terminalit SSH

Ne kemi zbuluar tashmë se çfarë është SSH më lart, dhe tani le të fillojmë të shikojmë se si të importojmë një bazë të dhënash të shkarkuar më parë në një projekt tjetër.

1. Deri në rrënjën tuaj hosting, shkarkoni bazën e të dhënave të shkarkuar më parë në një mënyrë të përshtatshme për ju.

2. Lidhu me hostin/serverin tënd nëpërmjet SSH.

kështu që ne patjetër shkojmë në rrënjën e pritjes, dhe e dyta- Kjo:

Kështu, ne marrim një listë të plotë të skedarëve dhe drejtorive të drejtorisë aktuale. Le të sigurohemi që databaza jonë e shkarkuar më parë të jetë midis tyre.

4. Nëse gjithçka është në rregull dhe baza është në vend, futni komandën përfundimtare:

Mysql -u EMRI I PERDORIMIT -p BAZA E TË DHËNAVE< backup.sql

EMRI PERDORUES– identifikimi i përdoruesit që ka akses në bazën e të dhënave.

BAZA E TË DHËNAVE– emrin e bazës së të dhënave në të cilën do të importojmë të dhëna.

backup.sql– emrin e skedarit që do të shkarkohet dhe shtegun në lidhje me . Me këtë dizajn, baza e të dhënave do të importohet nga rrënja e hostit.

5. Pas futjes së komandës, do t'ju kërkohet të vendosni fjalëkalimin për përdoruesin që keni specifikuar në hapin e katërt. Futni fjalëkalimin tuaj dhe klikoni " Hyni"në tastierë. shënim që futja e një fjalëkalimi në terminalin SSH nuk shfaqet, domethënë nëse e futni fjalëkalimin ose e ngjisni atë, gjithmonë do të ketë një hapësirë ​​boshe në vend të tij.

Pas kësaj, kur serveri të jetë përsëri gati për të pranuar komanda përmes SSH, kjo do të thotë që importi i bazës së të dhënave ka përfunduar dhe ju mund të vazhdoni të punoni në projekt.

Ditë të mbarë kolegë :)

Sot do të vazhdoj t'ju prezantoj me punën me MySQL në tastierë dhe linjën e komandës MySQL.

Unë kam shkruar tashmë artikuj se si të kryejnë veprimet bazë me të dhënat MySQL përmes tastierës dhe si të kopjoni bazën e të dhënave MySQL, si dhe të eksportoni informacionin e ruajtur në të.

Vazhdimi logjik i kësaj historie do të jetë restaurimi i bazës së të dhënave dhe informacionit të ruajtur në të duke përdorur operacionet e importimit të bazës së të dhënave MySQL. Dhe, më e rëndësishmja, ne do të vazhdojmë ta bëjmë këtë duke përdorur mjetin e të gjithë zhvilluesve të vërtetë - përmes tastierës.

Nëse keni nevojë për udhëzime për importimin e një baze të dhënash përmes phpMyAdmin, atëherë mund ta gjeni në artikullin rreth. Në artikullin aktual, nuk jam i etur ta përshkruaj përsëri, veçanërisht pasi materiali i sotëm do t'i kushtohet ekskluzivisht importimit të bazës së të dhënave MySQL përmes tastierës.

Por, përpara se të fillojmë të shqyrtojmë metodat dhe mjetet, disa fjalë rreth asaj se çfarë është importimi i një baze të dhënash MySQL, si është dhe si ta bëjmë më mirë?

Importimi i një baze të dhënash MySQL: çfarë dhe pse?

Importimi i një baze të dhënash MySQL është një operacion që mbush bazën e të dhënave me informacion. Në këtë rast, burimi i të dhënave është një skedar hale - një fotografi e një baze të dhënash tjetër, e krijuar automatikisht gjatë operacionit të eksportit, ose një skript SQL i përgatitur posaçërisht.

Importi, si dhe eksporti i bazës së të dhënave MySQL, ekzistojnë dy lloje informacioni të ruajtura në bazën e të dhënave:

  1. strukturën e bazës së të dhënave, tabelat e saj dhe të dhënat e ruajtura në to (zakonisht të quajtur depon e bazës së të dhënave);
  2. thjesht të dhëna të ruajtura në një tabelë ose të mbledhura duke përdorur ZGJIDH kërkesat.

Ky artikull do të diskutojë të dy opsionet.

Për të rivendosur një bazë të dhënash MySQL me strukturën e saj dhe të gjitha informacionet e ruajtura nga një deponim, siç u përmend tashmë, ju nevojitet një skedar hale i bazës së të dhënave, i cili është një skedar teksti me çdo shtesë (mund të paketohet paraprakisht në një arkiv për të zvogëluar madhësinë). që përmban komanda SQL për krijimin e vetë bazës së të dhënave dhe tabelave, si dhe plotësimin e tyre me informacion.

Prandaj, për të rivendosur një bazë të dhënash MySQL nga një hale, duhet të ekzekutoni komandat që përmbahen në skedar.

Për rikuperimin e rregullt të të dhënave, komplikime të tilla nuk janë të nevojshme. Mjafton të keni në dispozicion një skedar testimi, informacioni në të cilin do të strukturohet në të njëjtën mënyrë si në tabelën e bazës së të dhënave: numri i kolonave me informacion korrespondon me numrin e atributeve të regjistrimit të tabelës.

Për këto qëllime, do të jetë i përshtatshëm një skedar i rregullt txt, të dhënat në të cilat do të ndahen, ose skedarët e krijuar në redaktues të veçantë të spreadsheet (Microsoft Office Excel, OpenOffice, etj.) me një shtrirje të shkëlqyer: xls, csv, odt, etj.

Madje këto formate janë të preferueshme, sepse Gjatë krijimit të tyre, përcaktuesit e të dhënave shtohen automatikisht nga redaktorët dhe nuk ka nevojë t'i futni ato veçmas, si në rastin e një skedari teksti të rregullt.

Shtimi i të dhënave në MySQL: Mjete

Sa i përket mjeteve për importimin e një baze të dhënash MySQL, mund të them se sot janë tre prej tyre.

Unë do t'i rendit ato, duke filluar nga niveli më i ulët dhe duke përfunduar me nivelin më të lartë (nga pikëpamja e përdorimit të të gjitha llojeve të predhave dhe shtesave):

  1. Konsola e serverit dhe linja e komandës MySQL;
  2. Skriptet e shkruara në gjuhë programimi që ju lejojnë të regjistroni të dhëna në MySQL duke përdorur mjete gjuhësore;
  3. Programe të gatshme që ofrojnë një ndërfaqe vizuale për të punuar me bazën e të dhënave (i njëjti phpMyAdmin, MySQL WorkBench, MySQL Manager, etj.).

Mendoj se renditja e mjeteve nuk do të ngrejë pyetje për askënd, sepse... Mjetet e gjuhës së programimit, si rregull, punojnë në bazë të komandave të konsolës MySQL, dhe programet bazohen në skripta ose punojnë drejtpërdrejt me MySQL nga linja e komandës.

Në një mënyrë apo tjetër, tastiera është në krye të gjithçkaje, dhe mjetet e mbetura janë, në fakt, emuluesit e saj.

Prandaj, përdorimi i tastierës kur importoni të dhëna në MySQL ju lejon të anashkaloni lloje të ndryshme kufizimesh të vendosura nga cilësimet e gjuhëve të programimit në serverin në internet dhe vetë programet (të cilat, nga rruga, nuk janë gjithmonë të mundshme për t'u ndryshuar).

Për shkak të kësaj, ju jo vetëm që mund të ngarkoni një bazë të dhënash MySQL përmes tastierës më shpejt, por edhe ta bëni këtë operacion të mundur në parim, sepse Skriptet dhe programet priren të ndërpresin importet kur arrihet koha maksimale e ekzekutimit të skriptit ose nuk fillojnë fare për shkak të madhësisë së skedarit të shkarkuar.

Unë mendoj se të gjithë ata që janë përpjekur ndonjëherë të ngarkojnë një hale të madhe në një bazë të dhënash MySQL përmes phpMyAdmin e kuptojnë se për çfarë po flas.

Shpesh këto kufizime janë shkaku i gabimeve kur importoni një bazë të dhënash MySQL, të cilat nuk do t'i shihni kurrë kur përdorni tastierën.

Ato, natyrisht, nuk janë konstante dhe mund të ndryshohen, por kjo është një dhimbje koke shtesë, e cila, nga rruga, mund të mos jetë e zgjidhshme për përdoruesit e zakonshëm.

Shpresoj se ju kam motivuar të importoni bazën e të dhënave MySQL përmes konsolës (si struktura e tij ashtu edhe të dhënat individuale).

Dhe në këtë shënim pozitiv, ne kalojmë në praktikën e shumëpritur dhe shqyrtojmë metodat dhe komandat për transferimin e konsolës së të dhënave në bazën e të dhënave.

Si të rivendosni një bazë të dhënash MySQL nga një hale përmes tastierës?

Pra, për të vendosur një hale MySQL nga tastiera, ekzistojnë dy mënyra:

  1. duke përdorur një komandë në linjën e komandës MySQL;
  2. në vetë konsolën e serverit.

Le të fillojmë me radhë.

Pra, për të importuar një depon të bazës së të dhënave MySQL në një ruajtje ekzistuese nëpërmjet , së pari duhet ta nisim atë dhe të zgjedhim bazën e të dhënave të dëshiruar në të cilën do të ngarkojmë deponinë tonë.

Zbatimi i këtyre veprimeve përshkruhet në detaje në artikullin e lidhur më sipër, kështu që nëse keni nevojë për një përshkrim të tyre, merrni ato nga atje, sepse Nuk dua t'i kopjoj për raundin e dytë.

Pasi të keni bërë sa më sipër, futni komandën e mëposhtme në MySQL Shell:

shtegu i burimit_dhe_dump_emri_file;

Gjithçka që na mbetet është të studiojmë mesazhet në tastierë për ecurinë e operacioneve të përfshira në hale.

Pa kaluar më parë në bazën e të dhënave të dëshiruar, pas lidhjes me serverin MySQL në tastierë, dump mund të importohet me komandën e mëposhtme:

Mysql -u emri i përdoruesit -p data_name< путь_и_имя_файла_дампа

Kjo eshte e gjitha. Gjëja kryesore është të prisni që importi të përfundojë nëse skedari është shumë i madh. Përfundimi i deponimit mund të gjykohet kur tastiera e serverit të jetë sërish e disponueshme.

Në fakt, ky është disavantazhi i kësaj metode në krahasim me atë të mëparshme, sepse në të parën është e mundur të monitorohen operacionet e kryera në bazën e të dhënave gjatë importit, por në të dytën jo.

Nëse skedari i hale është i paketuar në një arkiv, atëherë gjatë shkarkimit do të duhet të shpaketohet në të njëjtën kohë.

Në Linux kjo mund të bëhet si kjo:

Gunzip > [archive_file_name.sql.gz] | mysql -u -p

Në Windows nuk ka asnjë mjet standard për shpaketimin e arkivit në tastierë, kështu që do t'ju duhet ta instaloni atë shtesë.

Siç mund ta shihni, importimi i një deponie MySQL përmes konsolës është një operacion shumë i thjeshtë, i cili kryhet me një komandë. Pra, nuk duhet të jeni një zhvillues për të kryer këtë procedurë.

Nëse papritmas nuk dini si të nisni tastierën e serverit, mund ta gjeni këtë informacion në artikullin në lidhje me linjën e komandës MySQL, lidhjen për të cilën kam postuar tashmë më herët.

Nga rruga, duke përdorur metodat e përshkruara, është gjithashtu e mundur të importoni një tabelë MySQL, dhe jo të gjithë bazën e të dhënave. Në këtë rast, deponia që ngarkoni duhet të përmbajë operacionet e krijimit dhe plotësimit të tij me të dhëna.

Ngarkimi i të dhënave në një bazë të dhënash MySQL nga një skedar në tastierë

Ne folëm për rivendosjen e një baze të dhënash MySQL nga një hale në tastierë. Tani është koha për të kuptuar se si mund të importoni të dhëna nga skedarët, duke përfshirë xls dhe csv, në një bazë të dhënash MySQL në të njëjtën mënyrë.

Për këtë detyrë, ne përsëri kemi të njëjtat dy mjete si në rastin e mëparshëm: linjën e komandës MySQL dhe konsolën e serverit.

Le të fillojmë përsëri rishikimin me radhë.

Pra, për të importuar një skedar në linjën e komandës MySQL, ne e ekzekutojmë përsëri dhe shkojmë në bazën e të dhënave në të cilën do të ngarkohen të dhënat.

NGARKONI TË DHËNAT INFILE "path_and_name_of_dump_file" NË KOLUMAT E TABELAVE `tabela_bazë e të dhënave` TË PËRFUNDUARA NGA "," TË MBYLLUR NGA RREZAT "\"" TË PËRFUNDOHEN NGA "\n";

Mos harroni se nëse serveri MySQL është nisur me opsionin --secure-file-priv(që shpesh ndodh kur përdoren shpërndarjet MySQL të përfshira në asambletë WAMP/MAMP), atëherë emri i skedarit duhet të specifikohet duke marrë parasysh variablin e sistemit sigurt_file_priv.

Për të importuar një bazë të dhënash MySQL në tastierën e serverit pa hyrë në MySQL Shell, do të na duhet mjeti mysqlimport, i përfshirë në shpërndarjen MySQL dhe thirrjen e tij vijuese:

mysqlimport –u user_name –p database_name name_and_path_to_import_file

Ky mjet është një analog i komandës SQL NGARKO INFILE TË TË DHËNAVE, vetëm për linjën e komandës. Por, lind pyetja, pse atëherë, midis parametrave të thirrjes së tij, nuk është tabela në të cilën do të ngarkohen të dhënat nga skedari?

Fakti është se mysqlimport thjesht fizikisht nuk e ka këtë parametër. Në vend të kësaj, emri i tabelës në të cilën do të ngarkohen të dhënat duhet të shfaqet në emrin e skedarit të importuar.

Ato. nëse dëshironi të importoni një tabelë Excel në një tabelë MySQL përdoruesit, atëherë skedari juaj duhet të thirret përdoruesit.xls.

Zgjatja e skedarit të importuar, siç u përmend tashmë, mund të jetë çdo gjë.

Me mysqlimport gjithashtu mund të ngarkoni skedarë të shumtë xls ose csv në MySQL menjëherë. Në mënyrë që të dhënat të arrijnë destinacionin e tyre, emrat e skedarëve dhe tabelave të bazës së të dhënave, si në shembullin e mëparshëm, duhet gjithashtu të përputhen.

Nëse papritmas kolonat në skedarin e importuar nuk janë në të njëjtën sekuencë si kolonat e tabelës së bazës së të dhënave, atëherë për të sqaruar renditjen e tyre duhet të përdorni opsionin —columns në formën e mëposhtme:

Mysqlimport –u user_name –p database_name --columns column1, column2, ... name_and_path_to_import_file

Natyrisht, në shembujt e mi nuk e mora parasysh listën e plotë të parametrave mysqlimport, sepse disa prej tyre janë shumë specifike dhe përdoren jashtëzakonisht rrallë në praktikë.

Nëse dëshironi të njiheni me ta, lista e tyre e plotë është e disponueshme këtu - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

Karakteristikat e ngarkimit të të dhënave në një bazë të dhënash MySQL nga një hale

Nëse dëshironi që procesi i importimit të një baze të dhënash të madhe MySQL të shkojë më shpejt, atëherë duhet të krijoni një depo të bazës së të dhënave duke përdorur opsione të veçanta të komandës mysqldump, për të cilën kam shkruar në artikullin tim të mëparshëm në lidhje me eksportimin e një baze të dhënash MySQL, lidhja për të cilën ishte postuar në tekst më herët.

Fatkeqësisht, vetë komandat e importit të bazës së të dhënave MySQL nuk kanë opsione të tilla.

E vetmja gjë është që për të rritur shpejtësinë kur ngarkoni një depo të madhe të bazës së të dhënave, mund të përdorni veçorinë e mëposhtme.

1. Hapni skedarin e grumbullimit (mundësisht në menaxherët e skedarëve, pasi redaktorët e zakonshëm thjesht mund të pushtohen nga skedarë të mëdhenj).

2. Shkruani rreshtat e mëposhtëm në fillim të skedarit:

VENDOSI kontrollet e_çelësave të huaj = 0; SET KONTROLLET UNIK = 0; SET AUTOKOMMIT = 0;

Shënim! Ata mund të jenë tashmë atje ose të komentuar (shumë programe që bëjnë deponime mund t'i shtojnë automatikisht)

3. Në fund të skedarit shkruajmë veprimet e kundërta:

VENDOSI kontrollet e_çelësave të huaj = 1; SET KONTROLLET UNIK = 1; SET AUTOKOMMIT = 1;

Nga rruga, këto komanda do të ndihmojnë jo vetëm në përshpejtimin e procesit të importit, por edhe ta bëjnë të mundur.

Fakti është se nëse e keni parë ndonjëherë skedarin dump për importimin e një baze të dhënash MySQL, mund të keni vënë re se funksioni i vendosjes së strukturës së tabelave të ngarkuara duket si ky:

HIQ TABELA NËSE EKZISTON 'klientë'; KRIJO TABELA `klientët` (...);

Ato. kryhet një kërkim në bazën e të dhënave për një tabelë me të njëjtin emër si ajo që importohet dhe nëse gjendet, ajo fshihet dhe krijohet përsëri.

Dhe nëse papritmas një tabelë ekzistuese lidhet me çelësa të huaj me të tjerët, atëherë i gjithë ngarkimi do të dështojë.

Prandaj, çaktivizimi i kontrollit për ekzistencën e çelësave të huaj dhe të tjerëve është gjithashtu një garanci e shkëlqyer për përfundimin me sukses të procesit të importimit të bazës së të dhënave MySQL.

Karakteristikat e importimit të csv në bazën e të dhënave MySQL dhe skedarë të tjerë

Kur ngarkoni të dhëna në një bazë të dhënash MySQL nga skedarët e tekstit, mund t'ju duhet gjithashtu të çaktivizoni çelësat e huaj.

Për më tepër, ndryshe nga situata e mëparshme, në këtë rast nuk do të jetë e mundur të futen direktiva në dosje, sepse Komandat SQL në të nuk do të pranohen dhe ekzekutohen.

Në një artikull të mëparshëm në lidhje me eksportimin e një baze të dhënash MySQL, kam përmendur tashmë se si ta bëj këtë duke përdorur operacionin e mëposhtëm në linjën e komandës MySQL:

VENDOSI KONTROLLET_KEY_TE HUAJ=0;

Megjithatë, nuk e përmenda atje variablin e sistemit MySQL FOREIGN_KEY_CHECKS ka dy kuptime: globale dhe sesionale (për sesionin aktual).

Vlera globale e variablave MySQL është e vlefshme për çdo veprim në serverin MySQL derisa të riniset. Pastaj vlerat e variablave do të rivendosen dhe atyre do t'u caktohen vlerat e paracaktuara.

Vlera e sesionit të ndryshores së sistemit MySQL vendoset vetëm për kohëzgjatjen e sesionit të përdoruesit me serverin MySQL. Një sesion ose sesion fillon kur një klient lidhet me serverin, në të cilën kohë atij i caktohet një unik ID e lidhjes, dhe përfundon kur shkëputet nga serveri, gjë që mund të ndodhë në çdo kohë (për shembull, për shkak të një afati kohor).

Pse vendosa ta kujtoj këtë?

Sepse gjatë ekzekutimit të komandave për të ngarkuar një skedar në një bazë të dhënash MySQL përmes tastierës së serverit, pa hyrë në MySQL Shell, zbulova se çaktivizimi i kontrollit të çelësit të huaj duke përdorur metodën e përshkruar më parë nuk funksionon.

Konsola shfaqi ende një mesazh gabimi të shkaktuar nga prania e çelësave të huaj në tabelë.

Dhe u ngrit për arsye se komanda e mësipërme çaktivizoi kontrollin për ekzistencën e çelësave të huaj brenda seancës, dhe jo globalisht, i cili, përveç metodës së treguar, mund të kryhet edhe si më poshtë:

SET SESSION emri_ndryshore = variabla_vlera; SET @@session.variable_name = variable_value; SET @@emri_ndryshues = vlera_ndryshore;

Në komandat e mësipërme, ndryshorja është shënuar qartë si sesion.

Dhe, meqenëse po ngarkoja një skedar csv në një tabelë MySQL përmes tastierës së serverit, pa një lidhje të drejtpërdrejtë me serverin MySQL, nuk u krijua një seancë brenda së cilës do të funksiononte vlera e variablës së sesionit tim.

Përfundova duke vendosur FOREIGN_KEY_CHECKS në globale dhe importi ishte i suksesshëm.

Ju mund ta bëni këtë në një nga mënyrat e mëposhtme:

SET GLOBAL emri_ndryshore = variabla_vlera; SET @@global.variable_name = variable_value;

Pas ndryshimit të vlerave, është mirë të rishikoni vlerat e ndryshores për të verifikuar nëse ndryshimet kanë hyrë në fuqi. Për të shfaqur njëkohësisht vlerat e sesionit dhe ato globale, përdorni komandën e mëposhtme:

SELECT @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;

Kjo përfundon artikullin e sotëm mbi importimin e një baze të dhënash MySQL. Ndani përshtypjet tuaja dhe zhvillimet tuaja në komente. Unë mendoj se shumë do të jenë të interesuar për përvojën tuaj.

Shihemi perseri! 🙂

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ë ose 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, OpenCart,

Në këtë artikull do të shqyrtojmë dy pyetje - si mund të importoni bazat e të dhënave dhe si ta zgjidhni problemin me importimin e bazave të të dhënave të mëdha duke ndryshuar cilësimet në php.ini.

Siç e dini, rezervimi i të dhënave është një garanci që ju do të jeni në gjendje të rivendosni faqen tuaj të internetit nëse papritmas, për ndonjë arsye, funksionimi i faqes ndërpritet. Si të rivendosni një faqe interneti nga një kopje rezervë? Ka disa mënyra, ne do të shikojmë se si mund të importoni një bazë të dhënash mysql në phpMyAdmin. Përpara se të filloni procesin e importimit të bazës së të dhënave, duhet të fshini të gjitha tabelat nga baza e të dhënave në të cilën do të importoni skedarë.

Për të fshirë tabelat, hyni në faqen kryesore të phpMyAdmin dhe ndiqni këto hapa:


2 - klikoni Shënoni të gjitha;
3 - zgjidhni Fshi nga menyja rënëse dhe klikoni OK,

Tani mund të filloni të importoni bazën e të dhënave mysql. Për ta bërë këtë, ndiqni këto hapa:

1 - zgjidhni bazën e të dhënave të dëshiruar;
2 - hapni skedën Import në menunë e sipërme;
3 - nëpërmjet Browse, gjeni kopjen rezervë me bazën e të dhënave dhe klikoni OK.

Nëse keni bërë gjithçka në mënyrë korrekte, një mesazh që tregon se importi ishte i suksesshëm do të shfaqet në dritaren phpMyAdmin.

Importimi i bazave të të dhënave të mëdha mysql

Webmasters shpesh hasin problemin e importimit të bazave të të dhënave të mëdha mysql. Problemi është për faktin se në PHPMyAdmin, shkarkimi i një skedari të bazës së të dhënave është i kufizuar nga madhësia e skedarit të ngarkuar, i cili si parazgjedhje nuk duhet të kalojë 2 MB (2,048 KB). Kur përpiqeni të shkarkoni një depo të një baze të dhënash të madhe, shfaqet një mesazh gabimi: "Madhësia e skedarit të shkarkimit është ndoshta shumë e madhe..." etj.

Le të shohim një mënyrë për të importuar një hale të një bazë të dhënash të madhe. Kufiri i madhësisë së skedarit të importit përcaktohet nga konfigurimi i PHP. Cilësimet e konfigurimit të PHP janë të specifikuara në skedarin php.ini. Kjo do të thotë që për të importuar baza të të dhënave të mëdha, do të na duhet të ndryshojmë madhësinë maksimale të skedarëve të ngarkuar në skedarin e konfigurimit php.ini.

Ku ndodhet skedari php.ini? Ju mund të llogarisni shtegun për në skedarin php.ini si më poshtë:

  • Krijoni një skedar info.php dhe vendosni kodin e mëposhtëm në të;
  • Ngarkoni skedarin e krijuar në dosjen rrënjësore të faqes (www, public_html);
  • Fusni adresën http://your_site/info.php në shiritin e adresave të shfletuesit tuaj;
  • Në dritaren që hapet, gjeni skedarin e konfigurimit të ngarkuar, ku do të tregohet shtegu i skedarit;

Për të importuar një bazë të dhënash të madhe mysql, duhet të ndryshoni direktivat php.ini në PHPMyAdmin.

Skedari php.ini është gjetur, tani mbetet vetëm ta modifikoni, ose më mirë të ndryshoni disa direktiva në skedar siç tregohet më poshtë:

Koha maksimale (sek) për të ngarkuar plotësisht skriptin:
koha_maksimumi i_ekzekutimit = 60
Koha maksimale (sekonda) e specifikuar që skripti të marrë të gjitha të dhënat:
koha_max_input = 90
Sasia maksimale e memories që lejohet të përdorë skripti:
Kufiri_memorie = 128M
Madhësia maksimale e lejuar e skedarëve të ngarkuar:
upload_max_filesize = 200M
Madhësia maksimale e të dhënave të transferuara që PHP do të pranojë:
madhësia_max_post = 180M

Duke ndryshuar direktivat e mësipërme në php.ini, ne mundëm të importonim bazat e të dhënave deri në 180 M përmes PHPMyAdmin.

Ju gjithashtu mund të përdorni versionin falas të Sypex Dumper për të importuar një bazë të dhënash hale. Dumperi është i optimizuar për shpejtësi maksimale të funksionimit, si dhe për të punuar me bazat e të dhënave prej rreth 800 megabajt.

Mirëdita miq, sot do të mësojmë se si të bëjmë... Pse është e nevojshme kjo, mund të pyesni. Para së gjithash eksporti i bazës së të dhënave duhet bërë periodikisht në mënyrë që në situata emergjente të mos humbni informacione të rëndësishme. Eksporti do të jetë një skedar i vogël në të cilin do të ruhen të gjitha informacionet rreth bazës së të dhënave. Për eksporti i bazës së të dhënave ju duhet të shkoni te PHPMyAdmin dhe të klikoni në bazën e të dhënave që ju intereson. Pas kësaj, do të shihni të gjitha tabelat në të dhe, pa hyrë në to, klikoni në butonin e menusë të quajtur eksport. Faqja e mëposhtme do të shfaqet para jush:


Unë ju këshilloj të zgjidhni një metodë të shpejtë të eksportit, dhe gjithashtu të specifikoni në format SQL. Pas kësaj mund të klikoni ok. Para jush do të shfaqet një dritare në të cilën do t'ju kërkohet të ruani skedarin.


Ju e ruani skedarin në vendin që ju nevojitet, gjëja kryesore është të mbani mend se ku e keni ruajtur, sepse është shumë e rëndësishme për ne.
Sa i përket metodës normale të eksportit. Mund ta përdorni gjithashtu nëse ju nevojitet, ka shumë cilësime shtesë që mund të vendosni kur eksportoni. Për shembull, zgjidhni tabelat e nevojshme nga baza e të dhënave, specifikoni kodimin dhe shumë më tepër. Nëse jeni të interesuar për këtë cilësim, mund ta shikoni atë. Por ne nuk do të hyjmë më thellë në këtë mjedis.
Pasi ta ruani skedarin në kompjuterin tuaj, do t'ju kërkoj të fshini bazën e të dhënave. Unë nuk do t'ju shpjegoj se si ta bëni këtë, sepse ne e kemi kaluar tashmë këtë. Mos kini frikë të fshini, ne do të kthejmë gjithçka në vendin e vet me ju.
Është koha për t'u zënë importimi i bazës së të dhënave. Shkoni te menyja e importit.


Ne zgjedhim një pasqyrë të kompjuterit tuaj dhe tregojmë rrugën drejt skedarit tonë. Dhe klikoni ok. Siç mund ta shihni, një gabim është shfaqur para jush. Mos u shqetësoni, e gjithë çështja është se ne nuk importuam vetë bazën e të dhënave, por vetëm të gjitha tabelat e saj. Prandaj, së pari krijoni një bazë të dhënash, shkoni në të dhe klikoni butonin e importit, pasi të keni bërë të gjitha sa më sipër. Duke shtypur butonin ok, gjithçka do të funksionojë dhe nëse keni bërë gjithçka siç duhet, nuk duhet të shfaqen gabime.


Siç mund ta shihni, tabela jonë është rishfaqur në vendin e saj dhe të gjitha të dhënat në të janë ruajtur. Tani e kuptoni çfarë mundësie të mrekullueshme eksportoni dhe importoni bazën e të dhënave në PHPMyAdmin. Në fund të fundit, nëse humbni të gjithë punën tuaj gjatë shumë viteve brenda një dite, falë këtij skedari mund të riktheni gjithçka. Me këtë ju them lamtumirë dhe shihemi së shpejti.


Top