Kako izvesti podatke u mysql. Izbacujemo MySQL bazu podataka i izvozimo podatke na konzolu. Uvoz SQL datoteka u MySQL baze podataka koristeći phpMyAdmin

Često me pitaju kako uvesti veliku bazu podataka na poslužitelj MySQL podaci. Poznato je da phpMyAdmin prema zadanim postavkama ima ograničenja na veličinu uvezene baze podataka.

Ako vaš dump nije puno veći od prihvatljive granice, možete ga podijeliti na nekoliko dijelova i uvesti u nekoliko prolaza. To je opravdano ako je npr. ograničenje 2 MB, a vaša baza podataka je veličine 5-10 MB. Jasno je da je “rezanje” baze podataka od 100 MB na 50 dijelova prilično naporan i dugotrajan proces.

Postoji nekoliko opcija za rješavanje ovog problema.

Uređivanje konfiguracije web poslužitelja

Na VDS/VPS nema posebnih problema s tim, samo trebate ispraviti konfiguraciju. Naime, u php.ini povećati dozvoljene maksimalne vrijednosti za datoteke uploadane na server, najveća veličina za datoteke prenesene metodom POST:

Post_max_size = 2000M upload_max_filesize = 2000M

Osim toga, ako je vaša baza podataka jako velika, trebali biste povećati maksimalno dopušteno vrijeme izvršavanja skripte.

Max_execution_time = 32000 max_input_time = 32000

I za svaki slučaj, možete povećati veličinu dopuštene količine RAM-a:

Ograničenje_memorije = 512M

Nakon što napravite promjene, svakako ponovno pokrenite web poslužitelj.

Jasno je da ova metoda nije prikladna za virtualni hosting, jer... to ne podrazumijeva mogućnost uređivanja konfiguracija.

Sypex kiper

Možeš koristiti softver treće strane. I prva aplikacija na koju vrijedi obratiti pažnju je Sypex Dumper.

Nakon što sam ga prvi put upotrijebio prije mnogo godina i cijeneći sve njegove mogućnosti i prednosti, mogu ga sa sigurnošću označiti kao “Must Have”. Sypex kiper - poslužiteljska aplikacija u PHP-u koji ne zahtijeva instalaciju. Dovoljno ga je kopirati npr. u root vaše stranice u sxd direktoriju i pozvati ga u pregledniku: http://Your_Site/sxd/. Vrijedno je napomenuti da prvo trebate smjestiti dump vaše baze podataka u direktorij za sigurnosne kopije. Nakon inicijalizacije skripte, vidjet ćete autorizacijsku ploču za povezivanje s bazom podataka. Unesite svoje korisničko ime i lozinku. Host i port su izborni samo ako su specifični.

Nakon autorizacije možete prijeći izravno na uvoz baze podataka. U polju "Baza podataka" bit će odabrana baza podataka na koju ste povezani, au polju "Datoteka" vidjet ćete dump koji ste prethodno učitali u direktorij sigurnosne kopije.

Za većinu slučajeva nijedan dodatne postavke više nisu potrebni i možete sigurno pokrenuti uvoz klikom na gumb "Pokreni". Uvoz, ovisno o veličini baze podataka i brzini internetske veze, može potrajati neko vrijeme. Tijekom uvoza možete vidjeti u koje se tablice uvozi ovaj trenutak u bazu podataka. Kada skripta završi, vidjet ćete zapisnik izvršenja. Izgleda otprilike ovako:

To je zapravo sve - baza podataka je uvezena!

Konzola

Nećemo razmatrati uvoz putem konzole. Mislim da ljudi koji koriste konzolu bez mene znaju kako uvesti bilo koju bazu podataka. A obični korisnici Bolje je ne ići tamo bez posebne obuke. Budući da izvršavanje nekih naredbi može dovesti do ozbiljnih posljedica, uključujući potpuni pad poslužitelja.

Konačno

Ne usuđujem se reći da je Sydex Dumper jedino i ispravno rješenje. Postoje i druge elegantnije metode koje od korisnika zahtijevaju određeno znanje i odgovarajući pristup postavkama poslužitelja.

Ali u zajedničkom hosting okruženju, Sydex Dumper će sigurno biti vaš nezamjenjiv pomoćnik.

Pretplatite se na moj telegram i budite prvi koji će primati nove materijale, uključujući one koji nisu na web mjestu.

Ova lekcija pokriva važna pitanja kao što su izvoz baze podataka I uvoz baze podataka MySQL. Možda se pitate zašto uopće izvoziti baze podataka? U pravilu se to radi radi sigurnosne kopije baze podataka, kako bi uvijek bila pri ruci, što se kaže, za svaki slučaj. Uostalom, nitko nije imun na okolnosti više sile, kao što su nezgode s hostingom, koje mogu dovesti do gubitka podataka. Drugi primjer može biti napad hakera koji žele naštetiti vašoj stranici. Zapravo, može biti mnogo takvih primjera.

Uvoz baze podataka koristi se kada trebate "ponovno učitati" bazu podataka na svoj trenutni hosting ili kada se preselite na drugi hosting. To u praksi često rade i webmasteri.

Sami izvoz baze podataka I uvoz baze podataka- zadaci su jednostavni. Vrijedno je izvršiti ove radnje jednom kako biste zapamtili algoritam za njihovu provedbu do kraja života. Pogledajmo na primjerima kako se sve to radi.

Da biste izvezli bazu podataka, morate otići na administratorsku ploču hostinga, a zatim otići u odjeljak baza podataka - MySQL baze podataka.

Odaberite bazu podataka koju želimo izvesti (idite na phpMyAdmin). U u ovom primjeru baza podataka se zove "cl209038".

1) U prvom slučaju odaberite “Fast”, ostavite format kao SQL i pritisnite gumb “OK”. Kao rezultat toga, kopija baze podataka bit će preuzeta na naše računalo.

2) U drugom slučaju odaberite “Normalno”. Pojavit će se stranica s postavkama izvoza baze podataka. Odaberite sve tablice, odaberite razinu kodiranja i kompresije, kao što je prikazano u nastavku. Ostatak, u pravilu, ne treba mijenjati. Kliknite gumb “OK” i baza podataka će biti eksportirana na naše računalo.

To je sve, kao što vidite, izvoz baze podataka MySQL nije težak zadatak.

Da biste uvezli bazu podataka, također morate otići na administratorsku ploču hostinga i otići na odjeljak s MySQL bazama podataka. Ovdje postoje dvije mogućnosti - ili trebate izraditi novu bazu podataka ili izvesti u postojeću.

Stvaranje baze podataka bit će potrebno, na primjer, ako premještamo web mjesto na drugi hosting. Ako još uvijek imamo isti hosting i baza je već kreirana, tada možete jednostavno odabrati ovu bazu i “ponovno postaviti” podatke u nju. Možete ga, naravno, obrisati, zatim stvoriti novi (prazan) i uploadati u njega.

1) Baza podataka već postoji. Odabiremo bazu podataka u koju ćemo uvesti našu kopiju baze podataka. Pojavit će se izbornik za uvoz baze podataka.

Odaberite datoteku kopije baze podataka koju želite uvesti. Ako je potrebno, možete promijeniti kodiranje i format baze podataka. Zatim kliknite gumb "OK". Nakon uvoza, sustav će nas obavijestiti je li sve prošlo kako treba ili je došlo do grešaka tijekom procesa. Ako se pojave pogreške, možete pokušati obrisati bazu podataka na hostingu, zatim kreirati praznu bazu podataka i ponovno uvesti bazu podataka.

2) Izrada nove baze podataka. Idite na administrativnu ploču hostinga i odaberite odjeljak s MySQL bazama podataka. Ulazimo u MySQL upravljanje bazom podataka.

Navedite željeno ime baze podataka i lozinku za nju. Pritisnite gumb "Stvori". Kao rezultat, trebala bi se stvoriti nova (prazna) baza podataka - u nju ćemo morati uvesti prethodno spremljenu kopiju naše baze podataka.

To je sve što sam vam htio reći o izvozu i uvozu MySQL baza podataka. Ako imate bilo kakvih poteškoća u vezi s ovim pitanjima, napišite komentare na ovu lekciju.

U ovom ćemo članku razmotriti dva pitanja - kako možete uvesti baze podataka i kako riješiti problem s uvozom velikih baza podataka promjenom postavki u php.ini.

Kao što znate, sigurnosna kopija podataka jamstvo je da ćete moći vratiti svoju web stranicu ako iznenada, iz nekog razloga, rad stranice bude poremećen. Kako vratiti web stranicu iz sigurnosne kopije? Postoji nekoliko načina, mi ćemo pogledati kako možete uvesti mysql bazu podataka u phpMyAdmin. Prije nego započnete proces uvoza baze podataka, morate obrisati sve tablice iz baze podataka u koju ćete uvoziti datoteke.

Za brisanje tablica prijavite se na početna stranica phpMyAdmin i učinite sljedeće:


2 - kliknite Označi sve;
3 - odaberite Izbriši s padajućeg izbornika i kliknite U redu,

Sada možete početi uvoziti mysql bazu podataka. Da biste to učinili, slijedite ove korake:

1 - odaberite željenu bazu podataka;
2 - otvorite karticu Uvezi u gornji izbornik;
3 - pronađite putem pregledavanja sigurnosna kopija s bazom podataka i kliknite OK.

Ako ste sve učinili ispravno, u prozoru phpMyAdmin pojavit će se poruka da je uvoz bio uspješan.

Uvoz velikih mysql baza podataka

Webmasteri se često susreću s problemom uvoza velikih mysql baza podataka. Problem je uzrokovan činjenicom da je u PHPMyAdmin-u preuzimanje dumpa baze podataka ograničeno veličinom učitane datoteke, koja prema zadanim postavkama ne smije premašiti 2 MB (2048 KB). Prilikom pokušaja preuzimanja dumpa velike baze podataka pojavljuje se poruka o pogrešci: "Veličina datoteke za preuzimanje vjerojatno je prevelika..." itd.

Pogledajmo jedan način uvoza dumpa velike baze podataka. Ograničenje veličine datoteke za uvoz određeno je PHP konfiguracijom. PHP konfiguracijske postavke navedene su u datoteci php.ini. To znači da ćemo za uvoz velikih baza podataka morati promijeniti maksimalnu veličinu učitanih datoteka u konfiguracijskoj datoteci php.ini.

Gdje se nalazi datoteka php.ini? Put do datoteke php.ini možete izračunati na sljedeći način:

  • Napravite datoteku info.php i u nju postavite sljedeći kod;
  • Učitajte stvorenu datoteku u korijensku mapu web mjesta (www, public_html);
  • U adresna traka preglednik, unesite adresu http://vaša_stranica/info.php;
  • U prozoru koji se otvori pronađite učitanu konfiguracijsku datoteku, gdje će biti naznačen put do datoteke;

Da biste uvezli veliku mysql bazu podataka, morate promijeniti php.ini direktive u PHPMyAdmin.

Datoteka php.ini je pronađena, sada preostaje samo urediti je, odnosno promijeniti nekoliko direktiva u datoteci kao što je prikazano u nastavku:

Maksimalno vrijeme (sek) za potpuno učitavanje skripte:
maksimalno_vrijeme_izvršenja = 60
Maksimalno vrijeme (u sekundama) određeno da skripta primi sve podatke:
max_input_time = 90
Maksimalna količina memorije koju skripta smije koristiti:
limit_memorije = 128M
Najveća dopuštena veličina učitanih datoteka:
upload_max_filesize = 200M
Maksimalna veličina prenesenih podataka koje će PHP prihvatiti:
post_max_size = 180M

Promjenom gornjih direktiva u php.ini, mogli smo uvoziti putem PHPMyAdmin baza podataka količina podataka do 180 M.

Za uvoz dumpa baze podataka također možete koristiti besplatna verzija Sypex Dumper programi. Damper je optimiziran za maksimalna brzina rad, kao i rad s bazama od oko 800 megabajta.

Prilikom prijenosa web stranice s lokalnog poslužitelja na hosting, jedan od obaveznih postupaka je izvoz/uvoz baze podataka. Stoga ću u ovom članku pokušati što detaljnije opisati proces izvoza i uvoza baze podataka s lokalnog poslužitelja, odnosno s web sučelja PHPMyAdmin verzija 3.2.3 za hosting.

Prvo što treba učiniti je trčati lokalni poslužitelj, u ovom slučaju to je Denwer. Nakon pokretanja Denwera potrebno je otvoriti preglednik i u red preglednika unijeti: “http://localhost/tools/phpmyadmin”, nakon čega će se otvoriti prozor ispred vas(Sl. 1)s prethodno stvorenim baze podataka.

Sl. 1

Zatim moramo odabrati bazu podataka koju ćemo eksportirati, u mom slučaju to je baza podataka koja se zove Mybd. Možete odabrati bazu podataka klikom na nju na lijevoj strani prozora preglednika, gdje piše “Odaberite bazu podataka” (slika 2).


sl.2

Nakon odabira željene baze, otvorit će se prozor sa strukturom baze podataka. Postoji stavka u gornjem izborniku "Izvoz" uz pomoć kojeg ćemo eksportirati bazu podataka na računalo i zatim je importirati na hosting. I tako, idite na stavku "Izvoz". (Sl.3).


sl.3

U prozoru koji se otvori morate napraviti neka mjerenja (Sl.4), naime: u bloku “Izvoz” potrebno je odabrati sve tablice baze podataka klikom na stavku "Odaberi sve" i potvrdite okvir pored stavke SQL, ova stavka je odgovorna za vrstu datoteke koja će se izvesti. Također, trebate potvrditi okvir pored "Spremi kao datoteku", koji će osigurati da je baza podataka spremljena u datoteku. Nema potrebe mijenjati druge postavke, samo pritisnite gumb "Ići".

sl.4

Sada, ako ste sve učinili ispravno, datoteka baze podataka trebala bi se preuzeti na vaše računalo. Pomoću ove datoteke ćemo uvesti bazu podataka na hosting.

Također, trebate promijeniti kodiranje datoteke u UTF-8 bez BOM-a, da biste promijenili kodiranje koje koristim uređivač teksta Notepad++(Preuzimanje datoteka ) . Pomoću ovog programa otvarate datoteku baze podataka iu izborniku "Kodiranje" izabrati “Pretvori u UTF-8 bez BOM-a” (Sl. 5), zatim spremite i zatvorite.


sl.5

Dobar dan kolege :)

Danas ću vas nastaviti upoznavati s radom s MySQL-om u konzoli i MySQL naredbenom retku.

Već sam napisao članke o tome kako izvesti osnovne radnje s MySQL podacima putem konzole i napraviti sigurnosne kopije MySQL baze podataka, kao i izvoz informacija pohranjenih u njemu.

Logičan nastavak ove priče bit će obnova baze podataka i podataka pohranjenih u njoj korištenjem MySQL operacija uvoza baze podataka. I što je još važnije, nastavit ćemo to činiti pomoću alata svih pravih programera - putem konzole.

Ako trebate upute za uvoz baze podataka putem phpMyAdmina, možete ih pronaći u članku o. U ovom članku ne želim ga ponovno opisivati, pogotovo jer će današnji materijal biti posvećen isključivo uvozu MySQL baze podataka putem konzole.

No, prije nego počnemo s pregledom metoda i alata, nekoliko riječi o tome što je uvoz MySQL baze podataka, kakav je i kako ga najbolje izvesti?

Uvoz MySQL baze podataka: što i zašto?

Uvoz MySQL baze podataka je operacija koja puni bazu podataka informacijama. U ovom slučaju, izvor podataka je dump datoteka - snimka druge baze podataka, automatski stvorena tijekom operacije izvoza, ili posebno pripremljena SQL skripta.

Uvoz, kao i izvoz MySQL baze podataka, postoje dvije vrste podataka pohranjenih u bazi podataka:

  1. strukturu baze podataka, njezine tablice i podatke pohranjene u njima (obično nazvano ispis baze podataka);
  2. jednostavno podaci pohranjeni u tablici ili prikupljeni pomoću IZABERI zahtjevi.

U ovom će se članku raspravljati o obje opcije.

Kako biste vratili MySQL bazu podataka s njezinom strukturom i svim pohranjenim informacijama iz dumpa, kao što je već spomenuto, potrebna vam je datoteka dumpa baze podataka, koja je tekstualna datoteka s bilo kojim nastavkom (može se unaprijed upakirati u arhivu kako bi se smanjila veličina) koja sadrži SQL naredbe za izradu same baze podataka i tablica, kao i za njihovo popunjavanje informacijama.

Stoga, kako biste vratili MySQL bazu podataka iz dumpa, trebate izvršiti naredbe sadržane u datoteci.

Za redovno obnavljanje podataka takve komplikacije nisu potrebne. Dovoljno je imati na raspolaganju probnu datoteku u kojoj će informacije biti strukturirane na isti način kao u tablici baze podataka: broj stupaca s informacijama odgovara broju atributa zapisa tablice.

U ove svrhe bit će prikladna obična txt datoteka, podaci u kojoj će biti odvojeni, ili datoteke stvorene u posebnim uređivačima proračunskih tablica ( Microsoft Office Excel, OpenOffice itd.) s izvrsnom ekstenzijom: xls, csv, odt itd.

Ovi su formati još poželjniji jer Prilikom njihove izrade uređivači automatski dodaju graničnike podataka i nema potrebe da ih posebno unosite, kao u slučaju obične tekstualne datoteke.

Dodavanje podataka u MySQL: Alati

Što se tiče alata za uvoz MySQL baze podataka, mogu reći da ih danas postoje tri.

Navest ću ih, počevši od najniže razine i završavajući s najvišom razinom (sa stajališta korištenja svih vrsta školjki i dodataka):

  1. Konzola poslužitelja i MySQL naredbeni redak;
  2. Skripte napisane u programskim jezicima koje vam omogućuju snimanje podataka u MySQL pomoću jezičnih alata;
  3. Gotovi programi koji pružaju vizualno sučelje za rad s bazom podataka (isti phpMyAdmin, MySQL WorkBench, MySQL Manager itd.).

Mislim da redoslijed alata nikome neće izazvati pitanja, jer... Alati programskog jezika u pravilu rade na temelju MySQL konzolnih naredbi, a programi se temelje na skriptama ili rade izravno s MySQL-om iz naredbenog retka.

Na ovaj ili onaj način, konzola je na čelu svega, a preostali alati su zapravo njeni emulatori.

Stoga vam korištenje konzole prilikom uvoza podataka u MySQL omogućuje zaobilaženje različitih ograničenja postavljenih postavkama programskih jezika na Web poslužitelj i sami programi (koji se, usput rečeno, ne mogu uvijek mijenjati).

Zbog toga ne samo da možete brže učitati MySQL bazu podataka kroz konzolu, već i učiniti ovu operaciju načelno mogućom, jer Skripte i programi imaju tendenciju prekidanja uvoza kada se postigne maksimalno vrijeme izvršavanja skripte ili se uopće ne pokreću zbog veličine preuzete datoteke.

Mislim da svi koji su ikada pokušali učitati veliki dump u MySQL bazu podataka putem phpMyAdmina razumiju o čemu govorim.

Često su ta ograničenja uzrok grešaka prilikom uvoza MySQL baze podataka, koje nikada nećete vidjeti kada koristite konzolu.

Oni, naravno, nisu stalni i mogu se mijenjati, ali to je dodatna glavobolja, koja, usput, možda nije rješiva ​​za obične korisnike.

Nadam se da sam vas motivirao da preko konzole uvezete MySQL bazu podataka (i strukturu i pojedinačne podatke).

I na ovoj pozitivnoj noti, prelazimo na dugo očekivanu praksu i razmatramo metode i naredbe za konzolni prijenos podataka u bazu podataka.

Kako vratiti MySQL bazu podataka iz dumpa putem konzole?

Dakle, kako biste postavili MySQL dump s konzole, postoje dva načina:

  1. pomoću naredbe in naredbeni redak MySQL;
  2. u samoj konzoli poslužitelja.

Krenimo redom.

Dakle, da bismo uvezli dump MySQL baze podataka u postojeću pohranu putem , prvo ga moramo pokrenuti i odabrati željenu bazu podataka u koju ćemo učitati naš dump.

Provedba ovih radnji detaljno je opisana u gore navedenom članku, pa ako trebate njihov opis, preuzmite ih od tamo, jer Ne želim ih duplirati za drugi krug.

Nakon što ste učinili gore navedeno, unesite sljedeću naredbu u MySQL Shell:

Izvorni put_i_dump_file_name;

Sve što nam preostaje je proučavati poruke u konzoli o tijeku operacija sadržanih u dumpu.

Bez prethodnog prebacivanja na željenu bazu podataka, nakon spajanja na MySQL poslužitelj u konzoli, dump se može uvesti sljedećom naredbom:

Mysql -u korisničko ime -p naziv_baze podataka< путь_и_имя_файла_дампа

To je sve. Glavna stvar je pričekati završetak uvoza ako je datoteka jako velika. Završetak dumpa može se ocijeniti prema tome kada konzola poslužitelja ponovno bude dostupna.

Zapravo, ovo je nedostatak ovu metodu u odnosu na prethodni, jer u prvom je moguće pratiti operacije koje se izvode na bazi podataka tijekom uvoza, ali u drugom nije.

Ako je datoteka ispisa zapakirana u arhivu, tada će se prilikom preuzimanja morati raspakirati u isto vrijeme.

Na Linuxu se to može učiniti ovako:

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

U Windows standard Ne postoji uslužni program za raspakiranje arhive u konzoli, pa će ga trebati dodatno instalirati.

Kao što vidite, uvoz MySQL dumpa putem konzole vrlo je jednostavna operacija koja se izvodi jednom naredbom. Dakle, ne morate biti programer da biste izvršili ovaj postupak.

Ako odjednom ne znate kako pokrenuti konzolu poslužitelja, ove informacije možete pronaći u članku o MySQL naredbenom retku, vezu na koju sam već objavio ranije.

Inače, pomoću opisanih metoda također je moguće uvesti MySQL tablicu, a ne cijelu bazu podataka. U ovom slučaju, dump koji učitate mora sadržavati operacije njegovog stvaranja i punjenja podacima.

Učitavanje podataka u MySQL bazu podataka iz datoteke u konzoli

Razgovarali smo o vraćanju MySQL baze podataka iz dumpa u konzoli. Sada je vrijeme da shvatite kako možete uvesti podatke iz datoteka, uključujući xls i csv, u MySQL bazu podataka na isti način.

Za ovaj zadatak ponovno imamo ista dva alata kao u prethodnom slučaju: MySQL naredbeni redak i konzolu poslužitelja.

Krenimo recenziju iznova redom.

Dakle, da bismo uvezli datoteku u MySQL naredbenom retku, ponovno je pokrenemo i idemo u bazu podataka u koju će se učitati podaci.

UČITAJ PODATKE INFILE "path_and_name_of_dump_file" U TABLICU `database_table` STUPCI KOJI ZAVRŠAVAJU "," OKRUŽENI "\"" REDOVI KOJI ZAVRŠAVAJU "\n";

Ne zaboravite da ako je MySQL poslužitelj pokrenut s opcijom --sigurna-datoteka-priv(što se često događa kada koristeći MySQL distribucije uključene u sklopove WAMP/MAMP), tada se naziv datoteke mora navesti uzimajući u obzir varijablu sustava sigurna_datoteka_priv.

Kako bismo uvezli MySQL bazu podataka u konzolu poslužitelja bez odlaska u MySQL Shell, trebat će nam uslužni program mysqlimport, uključen u MySQL distribuciju, i njegov sljedeći poziv:

mysqlimport –u korisničko_ime –p ime_baze podataka ime_i_put_do_uvozne_datoteke

Ovaj uslužni program je analogna SQL naredbi UČITAJ PODATKOVNU DATOTEKU, samo za naredbeni redak. No, postavlja se pitanje zašto onda među parametrima njegovog poziva nema tablice u koju će se učitavati podaci iz datoteke?

Činjenica je da mysqlimport jednostavno fizički nema ovaj parametar. Umjesto toga, naziv tablice u koju će se podaci učitati mora se pojaviti u nazivu uvezene datoteke.

Oni. ako želite uvoziti iz Excel tablice u MySQL tablicu korisnika, tada bi se vaša datoteka trebala pozvati korisnici.xls.

Ekstenzija uvezene datoteke, kao što je već spomenuto, može biti bilo što.

Uz mysqlimport također možete preuzeti više xls datoteke ili csv u MySQL-u. Kako bi podaci stigli na odredište, nazivi datoteka i tablica baze podataka, kao u prethodnom primjeru, također se moraju podudarati.

Ako iznenada stupci u uvezenoj datoteci nisu u istom redoslijedu kao stupci tablice baze podataka, tada da biste razjasnili njihov redoslijed morate upotrijebiti opciju —stupci u sljedećem obliku:

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

Naravno, u svojim primjerima nisam uzeo u obzir puni popis mysqlimport parametri, jer neki od njih su vrlo specifični iu praksi se iznimno rijetko koriste.

Ako se želite upoznati s njima, njihov cijeli popis dostupan je ovdje - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

Značajke učitavanja podataka u MySQL bazu podataka iz dumpa

Ako želite da proces uvoza velike MySQL baze podataka ide brže, tada trebate stvoriti ispis baze podataka pomoću posebne opcije naredbe mysqldump, o kojima sam pisao u svom prethodnom članku o izvozu MySQL baze podataka, čiju poveznicu sam objavio u tekstu ranije.

Nažalost, same naredbe za uvoz MySQL baze podataka nemaju takve opcije.

Jedina stvar je da za povećanje brzine pri učitavanju velikog dumpa baze podataka možete koristiti sljedeću značajku.

1. Otvorite datoteku ispisa (po mogućnosti u upravitelji datotekama, jer obični uređivači mogu jednostavno biti preopterećeni velikim datotekama).

2. Napišite sljedeće retke na početku datoteke:

SET stranog_ključa_provjere = 0; SET UNIQUE_CHECKS = 0; POSTAVITE AUTOKOMMIT = 0;

Bilješka! Možda su već tamo ili su komentirani (mnogi programi koji prave ispise mogu ih dodati automatski)

3. Na kraju datoteke pišemo obrnute radnje:

SET stranog_ključa_provjere = 1; SET UNIQUE_CHECKS = 1; SET AUTOCOMMIT = 1;

Usput, ove naredbe pomoći će ne samo ubrzati proces uvoza, već će ga i omogućiti.

Činjenica je da ste, ako ste ikada pogledali dump datoteku za uvoz MySQL baze podataka, mogli primijetiti da operacija postavljanja strukture učitanih tablica izgleda ovako:

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

Oni. vrši se pretraga u bazi podataka za tablicom istog naziva kao ona koja se uvozi, a ako se pronađe, briše se i iznova kreira.

A ako se iznenada postojeća tablica stranim ključevima poveže s drugima, tada cijelo učitavanje neće uspjeti.

Stoga je onemogućavanje provjere postojanja stranih ključeva i ostalih također izvrsna garancija uspješnog završetka procesa uvoza MySQL baze podataka.

Značajke uvoza csv u MySQL bazu podataka i druge datoteke

Prilikom učitavanja podataka u MySQL bazu podataka iz tekstualne datoteke Možda ćete također morati onemogućiti strane ključeve.

Štoviše, za razliku od prethodne situacije, u ovom slučaju neće biti moguće pisati direktive u datoteku, jer SQL naredbe u njemu neće biti prihvaćene i izvršene.

U prethodnom članku o izvozu MySQL baze podataka već sam spomenuo kako to učiniti pomoću sljedeće operacije u MySQL naredbenom retku:

SET FOREIGN_KEY_CHECKS=0;

Međutim, tamo nisam spomenuo varijablu sustava MySQL STRANSKI_KLJUČEVI_ČEKOVI ima dva značenja: globalno i sesijsko (za trenutnu sesiju).

Globalna vrijednost MySQL varijabli vrijedi za bilo koju akciju na MySQL poslužitelju dok se ponovno ne pokrene. Tada će se vrijednosti varijabli resetirati i bit će im dodijeljene zadane vrijednosti.

Vrijednost sesije sistemske varijable MySQL postavlja se samo za vrijeme trajanja sesije korisnika s MySQL poslužiteljem. Sesija ili sesija počinje kada se klijent spoji na poslužitelj, a tada mu se dodjeljuje jedinstvena id veze, a završava kada se prekine veza s poslužiteljem, što se može dogoditi u bilo kojem trenutku (na primjer, zbog isteka vremena).

Zašto sam odlučio zapamtiti ovo?

Budući da sam prilikom izvršavanja naredbi za učitavanje datoteke u MySQL bazu podataka putem konzole poslužitelja, bez odlaska u MySQL Shell, otkrio da onemogućavanje provjere stranog ključa pomoću prethodno opisane metode ne funkcionira.

Konzola je i dalje prikazivala poruku o pogrešci uzrokovanu prisutnošću stranih ključeva u tablici.

A nastao je iz razloga što je gornja naredba onemogućila provjeru postojanja stranih ključeva unutar sesije, a ne globalno, što se osim navedene metode može izvesti i na sljedeći način:

SET SESSION naziv_varijable = vrijednost_varijable; SET @@session.variable_name = variable_value; SET @@ime_varijable = vrijednost_varijable;

U gornjim naredbama varijabla je jasno označena kao sesija.

Oh, jer sam punio csv datoteka na MySQL tablicu putem konzole poslužitelja, bez izravne veze s MySQL poslužitelj, tada nije stvorena sesija unutar koje bi moja vrijednost varijable sesije radila.

Na kraju sam postavio FOREIGN_KEY_CHECKS na globalno i uvoz je bio uspješan.

To možete učiniti na jedan od sljedećih načina:

SET GLOBAL ime_varijable = vrijednost_varijable; SET @@global.variable_name = varijabla_vrijednost;

Nakon promjene vrijednosti, dobro je pregledati vrijednosti varijable kako biste potvrdili da su promjene stupile na snagu. Za prikaz sesije i globalnih vrijednosti istovremeno koristite sljedeću naredbu:

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

Ovime se završava današnji članak o uvozu MySQL baze podataka. Podijelite svoje dojmove i vlastiti razvoj u komentarima. Mislim da će mnoge zanimati tvoje iskustvo.

Vidimo se opet! 🙂

p.s.: ako trebate web stranicu ili trebate napraviti izmjene na postojećoj, ali nemate vremena ili želje za to, mogu ponuditi svoje usluge.

Više od 5 godina iskustva profesionalni razvoj web stranice. Raditi sa PHP, OpenCart,