Kako izvoziti podatke v mysql. Bazo podatkov MySQL izpustimo in podatke izvozimo v konzolo. Uvažanje datotek SQL v baze podatkov MySQL s pomočjo phpMyAdmin

Pogosto me vprašajo, kako uvoziti veliko bazo podatkov na strežnik Podatki MySQL. Znano je, da ima phpMyAdmin privzeto omejitve glede velikosti uvožene baze podatkov.

Če vaš dump ni veliko večji od sprejemljive meje, ga lahko razdelite na več delov in uvozite v več prehodih. To je upravičeno, če je na primer omejitev 2 MB, vaša baza pa je velika 5-10 MB. Jasno je, da je »razrez« 100 MB velike baze podatkov na 50 delov precej delovno intenziven in dolgotrajen proces.

Obstaja več možnosti za rešitev te težave.

Urejanje konfiguracije spletnega strežnika

Na VDS/VPS s tem ni posebnih težav, le popraviti morate konfiguracijo. Namreč, v php.ini povečajte največje dovoljene vrednosti za datoteke, naložene na strežnik, največja velikost za datoteke, prenesene z metodo POST:

Post_max_size = 2000M upload_max_filesize = 2000M

Poleg tega, če je vaša zbirka podatkov zelo velika, morate povečati največji dovoljeni čas izvajanja skripta.

Max_execution_time = 32000 max_input_time = 32000

In za vsak slučaj lahko povečate velikost dovoljene količine RAM-a:

Omejitev_pomnilnika = 512M

Po opravljenih spremembah ponovno zaženite spletni strežnik.

Jasno je, da ta način ni primeren za virtualno gostovanje, ker... ne pomeni zmožnosti urejanja konfiguracij.

Sypex prekucnik

Lahko uporabiš programska oprema tretjih oseb. In prva aplikacija, na katero je vredno biti pozoren, je Sypex Dumper.

Ker sem ga prvič uporabil pred mnogimi leti in cenim vse njegove zmožnosti in prednosti, ga lahko mirno označim kot “Must Have”. Sypex prekucnik - strežniško aplikacijo v PHP, ki ne zahteva namestitve. Dovolj je, da ga kopirate na primer v koren vašega spletnega mesta v imeniku sxd in ga pokličete v brskalniku: http://Your_Site/sxd/. Treba je omeniti, da morate najprej postaviti izpis vaše baze podatkov v imenik varnostnih kopij. Po inicializaciji skripta boste videli avtorizacijsko ploščo za povezavo z bazo podatkov. Vnesite svoje uporabniško ime in geslo. Gostitelj in vrata sta neobvezna le, če sta specifična.

Po avtorizaciji lahko greste neposredno na uvoz baze podatkov. Na terenu "Baza podatkov" izbrana bo baza podatkov, s katero ste povezani, in v polju "Mapa" videli boste izpis, ki ste ga predhodno naložili v imenik varnostne kopije.

V večini primerov nič dodatne nastavitve niso več potrebni in lahko varno začnete uvoz s klikom na gumb »Zaženi«. Uvoz lahko traja nekaj časa, odvisno od velikosti baze podatkov in hitrosti internetne povezave. Med uvozom lahko vidite, v katere tabele se uvažajo ta trenutek v bazo podatkov. Ko se skript zaključi, boste videli dnevnik izvajanja. Videti je nekako takole:

To je pravzaprav vse - baza podatkov je uvožena!

Konzola

Ne bomo upoštevali uvoza prek konzole. Mislim, da ljudje, ki uporabljajo konzolo brez mene, znajo uvoziti katero koli bazo podatkov. A običajni uporabniki Bolje je, da ne greste tja brez posebnega usposabljanja. Ker lahko izvajanje nekaterih ukazov povzroči resne posledice, vključno s popolnim zrušitvijo strežnika.

Končno

Ne upam trditi, da je Sydex Dumper edina in pravilna rešitev. Obstajajo tudi druge elegantnejše metode, ki od uporabnika zahtevajo določeno znanje in ustrezen dostop do nastavitev strežnika.

Toda v okolju skupnega gostovanja bo Sydex Dumper zagotovo vaš nepogrešljiv pomočnik.

Naročite se na moj telegram in bodite prvi, ki bo prejel nove materiale, tudi tiste, ki niso na spletnem mestu.

Ta lekcija zajema pomembna vprašanja, kot so izvoz baze podatkov in uvoz baze podatkov MySQL. Morda se boste vprašali, zakaj sploh izvažati baze podatkov? Praviloma se to naredi z namenom varnostnega kopiranja baze podatkov, tako da je vedno pri roki, kot pravijo, za vsak slučaj. Navsezadnje nihče ni imun na višje sile, kot so nesreče pri gostovanju, ki lahko povzročijo izgubo podatkov. Drug primer je lahko napad hekerjev, ki želijo škodovati vašemu spletnemu mestu. Pravzaprav je takih primerov lahko veliko.

Uvoz baze podatkov se uporablja, ko morate "ponovno naložiti" bazo podatkov na vaše trenutno gostovanje ali ko se preselite na drugo gostovanje. To v praksi pogosto počnejo tudi skrbniki spletnih strani.

Sami izvoz baze podatkov in uvoz baze podatkov- naloge so preproste. Ta dejanja je vredno izvesti enkrat, da si zapomnite algoritem za njihovo izvajanje do konca svojega življenja. Poglejmo, kako je vse to storjeno s primeri.

Če želite izvoziti bazo podatkov, morate odpreti skrbniško ploščo gostovanja in nato odpreti razdelek baze podatkov - Baze podatkov MySQL.

Izberite bazo podatkov, ki jo želimo izvoziti (pojdite na phpMyAdmin). IN v tem primeru zbirka podatkov se imenuje "cl209038".

1) V prvem primeru izberite »Hitro«, pustite obliko kot SQL in pritisnite gumb »V redu«. Posledično bo kopija baze podatkov prenesena na naš računalnik.

2) V drugem primeru izberite »Normalno«. Prikaže se stran z nastavitvami izvoza baze podatkov. Izberite vse tabele, izberite kodiranje in stopnjo stiskanja, kot je prikazano spodaj. Ostalih praviloma ni treba spreminjati. Kliknite gumb »V redu« in baza podatkov bo izvožena v naš računalnik.

To je vse, kot lahko vidite, izvoz baze podatkov MySQL ni težka naloga.

Če želite uvoziti bazo podatkov, morate odpreti tudi skrbniško ploščo gostovanja in odpreti razdelek z bazami podatkov MySQL. Tukaj sta dve možnosti - ali morate ustvariti novo zbirko podatkov ali izvoziti v obstoječo.

Ustvarjanje baze podatkov bo potrebno, na primer, če bomo spletno mesto preselili na drugo gostovanje. Če imamo še vedno isto gostovanje in je baza podatkov že ustvarjena, potem lahko preprosto izberete to bazo in vanjo “ponovno naložite” podatke. Seveda ga lahko izbrišete, nato ustvarite novega (praznega) in naložite vanj.

1) Baza podatkov že obstaja. Izberemo zbirko podatkov, v katero bomo uvozili našo kopijo baze podatkov. Prikaže se meni za uvoz baze podatkov.

Izberite kopijo baze podatkov, ki jo želite uvoziti. Po potrebi lahko spremenite kodiranje in format baze podatkov. Nato kliknite gumb »V redu«. Po uvozu nas bo sistem obvestil, ali je vse potekalo pravilno oziroma ali je med postopkom prišlo do napak. Če pride do napak, lahko poskusite izbrisati bazo na gostovanju, nato ustvarite prazno bazo in ponovno uvozite bazo.

2) Izdelava nove baze podatkov. Pojdite na skrbniško ploščo gostovanja in izberite razdelek z bazami podatkov MySQL. Vstopimo v upravljanje baze podatkov MySQL.

Podajte želeno ime baze podatkov in geslo zanjo. Kliknite gumb "Ustvari". Posledično bi morala biti ustvarjena nova (prazna) zbirka podatkov - vanjo bomo morali uvoziti predhodno shranjeno kopijo naše baze podatkov.

To je vse, kar sem vam želel povedati o izvozu in uvozu baz podatkov MySQL. Če imate kakršne koli težave pri teh vprašanjih, napišite komentarje k tej lekciji.

V tem članku bomo obravnavali dve vprašanji - kako lahko uvozite baze podatkov in kako rešiti težavo z uvozom velikih baz podatkov s spreminjanjem nastavitev v php.ini.

Kot veste, je varnostno kopiranje podatkov zagotovilo, da boste lahko obnovili svoje spletno mesto, če nenadoma iz nekega razloga pride do motenj v delovanju spletnega mesta. Kako obnoviti spletno stran iz varnostne kopije? Obstaja več načinov, pogledali bomo, kako lahko uvozite bazo podatkov mysql v phpMyAdmin. Preden začnete s postopkom uvoza baze podatkov, morate izbrisati vse tabele iz baze podatkov, v katere boste uvozili datoteke.

Če želite izbrisati tabele, se prijavite v domača stran phpMyAdmin in naredite naslednje:


2 - kliknite Označi vse;
3 - v spustnem meniju izberite Izbriši in kliknite V redu,

Zdaj lahko začnete uvažati bazo podatkov mysql. Če želite to narediti, sledite tem korakom:

1 - izberite želeno bazo podatkov;
2 - odprite zavihek Uvozi v zgornji meni;
3 - poiščite prek Brskanja varnostno kopijo z bazo podatkov in kliknite OK.

Če ste vse naredili pravilno, se bo v oknu phpMyAdmin pojavilo sporočilo, da je bil uvoz uspešen.

Uvažanje velikih baz podatkov mysql

Spletni skrbniki se pogosto srečujejo s težavo uvoza velikih baz podatkov mysql. Težava je posledica dejstva, da je v PHPMyAdmin prenos izpisa baze podatkov omejen z velikostjo naložene datoteke, ki privzeto ne sme presegati 2 MB (2048 KB). Ko poskušate prenesti izpis velike zbirke podatkov, se prikaže sporočilo o napaki: »Velikost datoteke za prenos je verjetno prevelika ...« itd.

Oglejmo si en način uvoza izpisa velike baze podatkov. Omejitev velikosti uvozne datoteke je določena s konfiguracijo PHP. Konfiguracijske nastavitve PHP so določene v datoteki php.ini. To pomeni, da bomo morali za uvoz velikih baz podatkov spremeniti največjo velikost naloženih datotek v konfiguracijski datoteki php.ini.

Kje se nahaja datoteka php.ini? Pot do datoteke php.ini lahko izračunate na naslednji način:

  • Ustvarite datoteko info.php in vanjo vstavite naslednjo kodo;
  • Naložite ustvarjeno datoteko v korensko mapo spletnega mesta (www, public_html);
  • IN naslovna vrstica brskalnik, vnesite naslov http://vaše_mesto/info.php;
  • V oknu, ki se odpre, poiščite naloženo konfiguracijsko datoteko, kjer bo navedena pot do datoteke;

Če želite uvoziti veliko bazo podatkov mysql, morate spremeniti direktive php.ini v PHPMyAdmin.

Datoteka php.ini je bila najdena, zdaj je ostalo le še, da jo uredimo oziroma spremenimo več direktiv v datoteki, kot je prikazano spodaj:

Največji čas (sek) za popolno nalaganje skripta:
max_execution_time = 60
Največji čas (v sekundah), določen za skript, da prejme vse podatke:
max_input_time = 90
Največja količina pomnilnika, ki jo lahko uporablja skript:
omejitev_pomnilnika = 128M
Največja dovoljena velikost naloženih datotek:
upload_max_filesize = 200M
Največja velikost prenesenih podatkov, ki jih PHP sprejme:
post_max_size = 180M

S spremembo zgornjih direktiv v php.ini smo lahko uvozili prek Baza podatkov PHPMyAdmin količina podatkov do 180 M.

Za uvoz izpisa baze podatkov lahko uporabite tudi brezplačna različica Programi Sypex Dumper. Dumper je optimiziran za največja hitrost delo, kot tudi delo z bazami podatkov s približno 800 megabajti.

Pri prenosu spletne strani z lokalnega strežnika na gostovanje je eden od obveznih postopkov izvoz/uvoz baze podatkov. Zato bom v tem članku poskušal čim bolj podrobno opisati postopek izvoza in uvoza baze podatkov iz lokalnega strežnika, torej iz spletnega vmesnika. PHPMyAdmin različica 3.2.3 za gostovanje.

Prva stvar je teči lokalni strežnik, v tem primeru je to Denwer. Po zagonu Denwerja morate odpreti brskalnik in v vrstico brskalnika vnesti: "http://localhost/tools/phpmyadmin", po katerem se pred vami odpre okno(slika 1)s predhodno ustvarjenim baze podatkov.

Slika 1

Nato moramo izbrati bazo podatkov, ki jo bomo izvozili, v mojem primeru je to baza podatkov z imenom Mybd. Bazo podatkov lahko izberete s klikom nanjo na levi strani okna brskalnika, kjer piše »Prosimo, izberite zbirko podatkov« (slika 2).


Slika 2

Po izbiri želene podatkovne baze se odpre okno s strukturo podatkovne baze. V zgornjem meniju je element "Izvoz" s pomočjo katerega bomo bazo izvozili na računalnik in jo nato uvozili na gostovanje. In tako pojdite na postavko »Izvozi«. (slika 3).


Slika 3

V oknu, ki se odpre, morate opraviti nekaj meritev (slika 4), in sicer: v bloku »Izvozi« morate izbrati vse tabele baze podatkov s klikom na element "Izberi vse" in potrdite polje poleg elementa SQL, je ta element odgovoren za vrsto datoteke, ki bo izvožena. Prav tako morate potrditi polje zraven "Shrani kot datoteko", ki bo zagotovil, da bo baza podatkov shranjena v datoteki. Drugih nastavitev ni treba spreminjati, samo pritisnite gumb "Pojdi".

Slika 4

Zdaj, če ste vse naredili pravilno, bi se morala datoteka baze podatkov prenesti v vaš računalnik. S to datoteko bomo bazo uvozili na gostovanje.

Prav tako morate spremeniti kodiranje datoteke v UTF-8 brez BOM, da spremenite kodiranje, ki ga uporabljam urejevalnik besedil Beležnica++(Prenesi ) . S tem programom odprete datoteko baze podatkov in v meniju "Kodiranje" izberite »Pretvori v UTF-8 brez BOM« (slika 5), nato shranite in zaprite.


Slika 5

Dober dan, kolegi :)

Danes vas bom nadaljeval s predstavitvijo dela z MySQL v konzoli in ukazne vrstice MySQL.

Napisal sem že članke o tem, kako izvajati osnovna dejanja s podatki MySQL prek konzole in narediti varnostne kopije baze podatkov MySQL, kot tudi izvoz informacij, shranjenih v njem.

Logično nadaljevanje te zgodbe bo obnovitev baze podatkov in informacij, ki so v njej shranjene z operacijami uvoza baze podatkov MySQL. In kar je pomembno, to bomo še naprej počeli z orodjem vseh pravih razvijalcev – prek konzole.

Če potrebujete navodila za uvoz baze podatkov prek phpMyAdmin, jih najdete v članku o. V tem članku ga ne želim ponovno opisati, še posebej, ker bo današnje gradivo namenjeno izključno uvozu baze podatkov MySQL prek konzole.

Toda preden začnemo s pregledom metod in orodij, nekaj besed o tem, kaj je uvoz podatkovne baze MySQL, kakšen je in kako ga najbolje narediti?

Uvoz podatkovne baze MySQL: kaj in zakaj?

Uvoz baze podatkov MySQL je operacija, ki napolni bazo podatkov z informacijami. V tem primeru je vir podatkov datoteka izpisa - posnetek druge podatkovne baze, samodejno ustvarjen med operacijo izvoza, ali posebej pripravljen skript SQL.

Pri uvozu in izvozu baze podatkov MySQL sta v bazi podatkov shranjeni dve vrsti informacij:

  1. strukturo baze podatkov, njenih tabel in podatkov, shranjenih v njih (splošno imenovano izpis baze podatkov);
  2. preprosto podatki, shranjeni v tabeli ali zbrani z uporabo IZBERI zahteve.

Ta članek bo obravnaval obe možnosti.

Če želite obnoviti bazo podatkov MySQL z njeno strukturo in vsemi shranjenimi informacijami iz izpisa, kot je bilo že omenjeno, potrebujete datoteko izpisa baze podatkov, ki je besedilna datoteka s poljubno pripono (lahko jo predhodno zapakirate v arhiv, da zmanjšate velikost), ki vsebuje SQL ukazi za ustvarjanje same baze podatkov in tabel ter njihovo polnjenje z informacijami.

Če želite torej obnoviti bazo podatkov MySQL iz odlagališča, morate izvesti ukaze, ki jih vsebuje datoteka.

Za redno obnovo podatkov takšni zapleti niso potrebni. Dovolj je imeti na voljo testno datoteko, v kateri bodo informacije strukturirane na enak način kot v tabeli baze podatkov: število stolpcev z informacijami ustreza številu atributov zapisa tabele.

Za te namene bo primerna običajna txt datoteka, v kateri bodo podatki ločeni, ali datoteke, ustvarjene v posebnih urejevalnikih preglednic ( Microsoft Office Excel, OpenOffice itd.) z odlično končnico: xls, csv, odt itd.

Ti formati so celo prednostni, ker Ko jih ustvarite, urejevalniki samodejno dodajo ločila podatkov in jih ni treba posebej vnašati, kot v primeru navadne besedilne datoteke.

Dodajanje podatkov v MySQL: Orodja

Glede orodij za uvoz podatkovne baze MySQL lahko rečem, da so danes tri.

Naštel jih bom, začenši z najnižje ravni in konča z najvišjo (z vidika uporabe vseh vrst lupin in dodatkov):

  1. Strežniška konzola in ukazna vrstica MySQL;
  2. Skripte, napisane v programskih jezikih, ki vam omogočajo zapisovanje podatkov v MySQL z jezikovnimi orodji;
  3. Pripravljeni programi, ki zagotavljajo vizualni vmesnik za delo z bazo podatkov (isti phpMyAdmin, MySQL WorkBench, MySQL Manager itd.).

Mislim, da vrstni red orodij ne bo nikomur sprožil vprašanj, ker... Orodja programskih jezikov praviloma delujejo na podlagi ukazov konzole MySQL, programi pa temeljijo na skriptih ali delujejo neposredno z MySQL iz ukazne vrstice.

Tako ali drugače je pri vsem v ospredju konzola, preostala orodja pa so pravzaprav njeni emulatorji.

Zato vam uporaba konzole pri uvozu podatkov v MySQL omogoča, da obidete različne vrste omejitev, ki jih določajo nastavitve programskih jezikov na spletni strežnik in sami programi (ki jih mimogrede ni mogoče vedno spremeniti).

Zaradi tega lahko ne le hitreje naložite bazo podatkov MySQL prek konzole, ampak tudi načeloma omogočite to operacijo, ker Skripti in programi običajno prekinejo uvoz, ko je dosežen najdaljši čas izvajanja skripta, ali pa se sploh ne zaženejo zaradi velikosti prenesene datoteke.

Mislim, da vsi, ki so kdaj poskusili naložiti velik dump v bazo podatkov MySQL prek phpMyAdmin, razumejo, o čem govorim.

Pogosto so te omejitve vzrok za napake pri uvozu podatkovne baze MySQL, ki jih pri uporabi konzole ne boste nikoli videli.

Seveda niso stalni in jih je mogoče spremeniti, vendar je to dodaten glavobol, ki ga, mimogrede, morda ne bo mogoče rešiti za običajne uporabnike.

Upam, da sem vas motiviral za uvoz podatkovne baze MySQL preko konzole (tako njene strukture kot posameznih podatkov).

In na tej pozitivni noti preidemo na dolgo pričakovano prakso in razmislimo o metodah in ukazih za konzolni prenos podatkov v bazo podatkov.

Kako obnoviti bazo podatkov MySQL iz odlagališča prek konzole?

Torej, če želite razmestiti izpis MySQL iz konzole, obstajata dva načina:

  1. z uporabo ukaza in ukazna vrstica MySQL;
  2. v sami strežniški konzoli.

Začnimo po vrsti.

Torej, če želimo uvoziti izpis baze podatkov MySQL v obstoječo shrambo prek , ga moramo najprej zagnati in izbrati želeno bazo podatkov, v katero bomo naložili naš izpis.

Izvedba teh dejanj je podrobno opisana v članku na zgornji povezavi, tako da če potrebujete njihov opis, jih vzemite od tam, ker Ne želim jih podvajati za drugi krog.

Ko naredite zgoraj navedeno, v lupino MySQL vnesite naslednji ukaz:

Source path_and_dump_file_name;

Vse, kar nam ostane, je, da preučimo sporočila v konzoli o napredku operacij, ki jih vsebuje izpis.

Brez predhodnega preklopa na želeno bazo podatkov lahko po povezavi s strežnikom MySQL v konzoli uvozite izpis z naslednjim ukazom:

Mysql -u uporabniško ime -p ime_baze podatkov< путь_и_имя_файла_дампа

To je vse. Glavna stvar je počakati, da se uvoz konča, če je datoteka zelo velika. Dokončanje izpisa pomnilnika lahko ocenite po tem, kdaj bo strežniška konzola spet na voljo.

Pravzaprav je to pomanjkljivost ta metoda v primerjavi s prejšnjim, saj v prvem je mogoče spremljati operacije, ki se izvajajo na bazi pri uvozu, v drugem pa ne.

Če je datoteka izpisa zapakirana v arhiv, jo je treba pri prenosu hkrati razpakirati.

V Linuxu je to mogoče narediti takole:

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

IN Windows standard V konzoli ni pripomočka za razpakiranje arhiva, zato ga bo treba dodatno namestiti.

Kot lahko vidite, je uvoz izpisa MySQL prek konzole zelo preprosta operacija, ki se izvede z enim ukazom. Za izvedbo tega postopka vam torej ni treba biti razvijalec.

Če nenadoma ne veste, kako zagnati strežniško konzolo, lahko te informacije najdete v članku o ukazni vrstici MySQL, povezavo do katere sem že objavil prej.

Mimogrede, z opisanimi metodami je mogoče uvoziti tudi tabelo MySQL in ne celotne baze podatkov. V tem primeru mora izpis, ki ga naložite, vsebovati operacije ustvarjanja in polnjenja s podatki.

Nalaganje podatkov v bazo podatkov MySQL iz datoteke v konzoli

Govorili smo o obnovitvi baze podatkov MySQL iz odlagališča v konzoli. Zdaj je čas, da ugotovite, kako lahko uvozite podatke iz datotek, vključno z xls in csv, v bazo podatkov MySQL na enak način.

Za to nalogo imamo spet enaki dve orodji kot v prejšnjem primeru: ukazno vrstico MySQL in strežniško konzolo.

Začnimo pregled znova po vrsti.

Torej, za uvoz datoteke v ukazni vrstici MySQL jo znova zaženemo in gremo v bazo podatkov, v katero se bodo podatki naložili.

NALOŽI PODATKE IN DATOTEKO "path_and_name_of_dump_file" V TABELO `tabela_baze_podatkov` STOLPCI, KI SE KONČAJO Z "," OBREDI Z "\"" VRSTICE, KI SE KONČAJO Z "\n";

Ne pozabite, da če je bil strežnik MySQL zagnan z možnostjo --secure-file-priv(kar se pogosto zgodi, ko z uporabo MySQL distribucije, vključene v sklope WAMP/MAMP), potem mora biti ime datoteke podano ob upoštevanju sistemske spremenljivke varna_datoteka_priv.

Za uvoz baze podatkov MySQL v strežniško konzolo, ne da bi šli v lupino MySQL, potrebujemo pripomoček mysqlimport, vključen v distribucijo MySQL, in njegov naslednji klic:

mysqlimport –u uporabniško_ime –p ime_baze podatkov ime_in_pot_do_uvozne_datoteke

Ta pripomoček je analogen ukazu SQL NALOŽI PODATKOVNO DATOTEKO, samo za ukazno vrstico. Postavlja pa se vprašanje, zakaj potem med parametri njegovega klica ni tabele, v katero bodo naloženi podatki iz datoteke?

Dejstvo je, da mysqlimport preprosto fizično nima ta parameter. Namesto tega se mora v imenu uvožene datoteke pojaviti ime tabele, v katero bodo naloženi podatki.

Tisti. če želite uvoziti iz Excel tabele v tabelo MySQL uporabniki, potem je treba vašo datoteko poklicati uporabniki.xls.

Razširitev uvožene datoteke, kot je bilo že omenjeno, je lahko karkoli.

Z mysqlimport lahko prenesete tudi več xls datoteke ali csv v MySQL. Da bi podatki dosegli cilj, se morajo imena datotek in tabel baze podatkov, kot v prejšnjem primeru, prav tako ujemati.

Če stolpci v uvoženi datoteki nenadoma niso v istem zaporedju kot stolpci tabele zbirke podatkov, morate za razjasnitev njihovega vrstnega reda uporabiti možnost —columns v naslednji obliki:

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

Seveda v svojih primerih nisem upošteval celoten seznam parametre mysqlimport, ker nekateri med njimi so zelo specifični in se v praksi zelo redko uporabljajo.

Če se želite seznaniti z njimi, je njihov celoten seznam na voljo tukaj - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

Funkcije nalaganja podatkov v bazo podatkov MySQL iz odlagališča

Če želite, da postopek uvoza velike baze podatkov MySQL poteka hitreje, morate ustvariti izpis baze podatkov z posebne možnosti ukazi mysqldump, o katerih sem pisal v prejšnjem članku o izvozu baze podatkov MySQL, povezavo do katerega sem objavil v besedilu prej.

Na žalost sami ukazi za uvoz podatkovne baze MySQL nimajo takih možnosti.

Edina stvar je, da lahko za povečanje hitrosti pri nalaganju velikega izpisa baze podatkov uporabite naslednjo funkcijo.

1. Odprite datoteko izpisa (po možnosti v upravitelji datotek, Ker običajni urejevalniki so lahko preprosto preobremenjeni z velikimi datotekami).

2. Na začetek datoteke napišite naslednje vrstice:

SET Foreign_key_checks = 0; SET UNIQUE_CHECKS = 0; NASTAVI SAMODEJO = 0;

Opomba! Morda so že tam ali so komentirani (številni programi, ki delajo izpise, jih lahko dodajo samodejno)

3. Na koncu datoteke zapišemo obratna dejanja:

SET Foreign_key_checks = 1; SET UNIQUE_CHECKS = 1; NASTAVI SAMODEJO = 1;

Mimogrede, ti ukazi bodo pomagali ne le pospešiti postopek uvoza, ampak ga bodo tudi omogočili.

Dejstvo je, da če ste kdaj pogledali datoteko izpisa za uvoz podatkovne baze MySQL, ste morda opazili, da je operacija nastavitve strukture naloženih tabel videti takole:

DROP TABLE IF EXISTS `odjemalci`; CREATE TABLE `odjemalci` (...);

Tisti. v bazi podatkov se izvede iskanje tabele z enakim imenom, kot ga uvažamo, in če jo najdemo, se izbriše in ustvari na novo.

In če je nenadoma obstoječa tabela s tujimi ključi povezana z drugimi, potem celotno nalaganje ne bo uspelo.

Zato je onemogočanje preverjanja obstoja tujih ključev in drugih tudi odlično zagotovilo za uspešen zaključek uvoza podatkovne baze MySQL.

Funkcije uvoza csv v bazo podatkov MySQL in druge datoteke

Pri nalaganju podatkov v bazo podatkov MySQL iz besedilne datoteke Morda boste morali tudi onemogočiti tuje ključe.

Poleg tega, za razliko od prejšnje situacije, v tem primeru ne bo mogoče zapisati direktiv v datoteko, ker Ukazi SQL v njem ne bodo sprejeti in izvedeni.

V prejšnjem članku o izvozu baze podatkov MySQL sem že omenil, kako to storiti z uporabo naslednje operacije v ukazni vrstici MySQL:

SET FOREIGN_KEY_CHECKS=0;

Vendar tam nisem omenil sistemske spremenljivke MySQL FOREIGN_KEY_CHECKS ima dva pomena: globalni in sejni (za trenutno sejo).

Globalna vrednost spremenljivk MySQL je veljavna za katero koli dejanje na strežniku MySQL, dokler se ta ne zažene znova. Nato bodo vrednosti spremenljivk ponastavljene in dodeljene jim bodo privzete vrednosti.

Vrednost seje sistemske spremenljivke MySQL je nastavljena samo za čas trajanja uporabnikove seje s strežnikom MySQL. Seja ali seja se začne, ko se odjemalec poveže s strežnikom, takrat se mu dodeli unikat id povezave, in se konča ob prekinitvi povezave s strežnikom, kar se lahko zgodi kadar koli (na primer zaradi časovne omejitve).

Zakaj sem se odločil to zapomniti?

Ker sem pri izvajanju ukazov za nalaganje datoteke v bazo podatkov MySQL prek strežniške konzole, ne da bi šel v lupino MySQL, odkril, da onemogočanje preverjanja tujega ključa s prej opisano metodo ne deluje.

Konzola je še vedno prikazovala sporočilo o napaki, ki ga je povzročila prisotnost tujih ključev v tabeli.

In nastalo je iz razloga, ker je zgornji ukaz onemogočil preverjanje obstoja tujih ključev znotraj seje in ne globalno, kar je poleg navedene metode mogoče izvesti tudi na naslednji način:

NASTAVITE SEJO variable_name = variable_value; SET @@session.variable_name = variable_value; SET @@ime_spremenljivke = vrednost_spremenljivke;

V zgornjih ukazih je spremenljivka jasno označena kot seja.

Oh, ker sem nalagal csv datoteko v tabelo MySQL prek strežniške konzole, brez neposredne povezave z strežnik MySQL, potem ni bila ustvarjena seja, znotraj katere bi delovala vrednost moje spremenljivke seje.

Na koncu sem FOREIGN_KEY_CHECKS nastavil na globalno in uvoz je bil uspešen.

To lahko storite na enega od naslednjih načinov:

SET GLOBAL ime_spremenljivke = vrednost_spremenljivke; SET @@global.ime_spremenljivke = vrednost_spremenljivke;

Ko spremenite vrednosti, je dobro, da pregledate vrednosti spremenljivke, da preverite, ali so spremembe začele veljati. Če želite istočasno prikazati sejo in globalne vrednosti, uporabite naslednji ukaz:

IZBERITE @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;

S tem se zaključuje današnji članek o uvozu baze podatkov MySQL. Delite svoje vtise in svoj razvoj v komentarjih. Mislim, da bodo mnoge zanimale vaše izkušnje.

Se vidiva! 🙂

P.S.: če potrebujete spletno stran ali želite spremeniti obstoječo, pa za to ni časa ali želje, lahko ponudim svoje storitve.

Več kot 5 let izkušenj profesionalni razvoj spletnih strani. Delo z PHP, OpenCart,