Importera en stor databas till mysql. Importera SQL-filer till MySQL-databaser


God dag kollegor :)

Idag kommer jag att fortsätta att presentera dig för att arbeta med MySQL i konsolen och MySQL-kommandoraden.

Jag har redan skrivit artiklar om hur man utför grundläggande åtgärder med MySQL-data genom konsolen och hur man säkerhetskopierar MySQL-databasen, samt exporterar informationen som lagras i den.

Den logiska fortsättningen på den här historien kommer att vara återställandet av databasen och den information som lagras i den med hjälp av MySQL-databasimportoperationer. Och, viktigare, vi kommer att fortsätta att göra detta med hjälp av verktyget från alla verkliga utvecklare - via konsolen.

Om du behöver instruktioner för att importera en databas via phpMyAdmin, så hittar du det i artikeln om. I den aktuella artikeln är jag inte sugen på att beskriva det igen, särskilt eftersom dagens material uteslutande kommer att ägnas åt att importera MySQL-databasen via konsolen.

Men, innan vi börjar granska metoder och verktyg, några ord om vad import av en MySQL-databas är, hur det är och hur man bäst gör det?

Importera en MySQL-databas: vad och varför?

Att importera en MySQL-databas är en operation som fyller databasen med information. I det här fallet är datakällan en dumpfil - en ögonblicksbild av en annan databas, skapad automatiskt under exportoperationen, eller ett speciellt förberett SQL-skript.

Import, såväl som export av MySQL-databasen, det finns två typer av information som lagras i databasen:

  1. databasens struktur, dess tabeller och data som lagras i dem (kallas vanligen en databasdump);
  2. helt enkelt data som lagras i en tabell eller samlas in med hjälp av VÄLJ förfrågningar.

Den här artikeln kommer att diskutera båda alternativen.

För att återställa en MySQL-databas med dess struktur och all lagrad information från en dump behöver du, som redan nämnts, en databasdumpfil, som är en textfil med valfritt tillägg (kan förpackas i ett arkiv för att minska storleken), som innehåller SQL-kommandon för att skapa själva databasen och tabeller, samt fylla dem med information.

Därför, för att återställa en MySQL-databas från en dump, måste du utföra kommandona som finns i filen.

För regelbunden dataåterställning är sådana komplikationer inte nödvändiga. Det räcker med att ha en testfil tillgänglig, informationen i vilken kommer att struktureras på samma sätt som i databastabellen: antalet kolumner med information motsvarar antalet tabellpostattribut.

För dessa ändamål kommer en vanlig txt-fil att vara lämplig, data som kommer att separeras i, eller filer skapade i speciella kalkylbladsredigerare (Microsoft Office Excel, OpenOffice, etc.) med ett utmärkt tillägg: xls, csv, odt, etc.

Dessa format är till och med att föredra, eftersom När du skapar dem läggs dataavgränsare till automatiskt av redaktörer, och det finns inget behov av att ange dem separat, som i fallet med en vanlig textfil.

Lägga till data till MySQL: Verktyg

Angående verktygen för att importera en MySQL-databas kan jag säga att det idag finns tre av dem.

Jag kommer att lista dem, från den lägsta nivån och slutar med den högsta nivån (ur synvinkeln att använda alla typer av skal och tillägg):

  1. Serverkonsol och MySQL-kommandorad;
  2. Skript skrivna på programmeringsspråk som låter dig spela in data i MySQL med hjälp av språkverktyg;
  3. Färdiga program som ger ett visuellt gränssnitt för att arbeta med databasen (samma phpMyAdmin, MySQL WorkBench, MySQL Manager, etc.).

Jag tror att ordningen på verktygen inte kommer att väcka några frågor för någon, eftersom... Programmeringsspråksverktyg, som regel, fungerar på basis av MySQL-konsolkommandon, och program är baserade på skript eller arbetar direkt med MySQL från kommandoraden.

På ett eller annat sätt är konsolen i framkant av allt, och de återstående verktygen är i själva verket dess emulatorer.

Genom att använda konsolen när du importerar data till MySQL kan du därför kringgå olika typer av begränsningar som ställs in av inställningarna för programmeringsspråk på webbservern och själva programmen (som förresten inte alltid är möjliga att ändra).

På grund av detta kan du inte bara ladda en MySQL-databas via konsolen snabbare, utan också göra denna operation möjlig i princip, eftersom Skript och program tenderar att avbryta importen när den maximala skriptexekveringstiden nås eller inte startar alls på grund av storleken på den nedladdade filen.

Jag tror att alla som någonsin har försökt ladda upp en stor dump till en MySQL-databas via phpMyAdmin förstår vad jag pratar om.

Ofta är dessa gränser orsaken till fel vid import av en MySQL-databas, som du aldrig kommer att se när du använder konsolen.

De är naturligtvis inte konstanta, och de kan ändras, men detta är en extra huvudvärk, som förresten kanske inte är lösbar för vanliga användare.

Jag hoppas att jag har motiverat dig att importera MySQL-databasen via konsolen (både dess struktur och individuella data).

Och på denna positiva anteckning går vi vidare till den efterlängtade praktiken och överväger metoder och kommandon för konsolöverföring av data till databasen.

Hur återställer man en MySQL-databas från en dump via konsolen?

Så för att distribuera en MySQL-dump från konsolen finns det två sätt:

  1. använda ett kommando på MySQL-kommandoraden;
  2. i själva serverkonsolen.

Låt oss börja i ordning.

Så för att importera en MySQL-databasdump till en befintlig lagring via , måste vi först starta den och välja önskad databas som vi ska ladda upp vår dump till.

Implementeringen av dessa åtgärder beskrivs i detalj i artikeln som länkas ovan, så om du behöver en beskrivning av dem, ta dem därifrån, eftersom Jag vill inte duplicera dem för den andra omgången.

När du har gjort ovanstående anger du följande kommando i MySQL Shell:

Källa path_and_dump_file_name;

Allt som återstår för oss är att studera meddelandena i konsolen om hur operationerna i dumpningen fortskrider.

Utan att först byta till önskad databas, efter anslutning till MySQL-servern i konsolen, kan dumpen importeras med följande kommando:

Mysql -u användarnamn -p databasnamn< путь_и_имя_файла_дампа

Det är allt. Det viktigaste är att vänta tills importen är klar om filen är väldigt stor. Slutförandet av dumpningen kan bedömas efter när serverkonsolen är tillgänglig igen.

I själva verket är detta nackdelen med denna metod jämfört med den tidigare, eftersom i den första är det möjligt att övervaka de operationer som utförs på databasen under importen, men i den andra är det inte.

Om dumpfilen är packad i ett arkiv måste den samtidigt packas upp vid nedladdning.

På Linux kan detta göras så här:

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

I Windows finns det inget standardverktyg för att packa upp arkivet i konsolen, så du måste installera det ytterligare.

Som du kan se är import av en MySQL-dump via konsolen en mycket enkel operation, som utförs med ett kommando. Så du behöver inte vara en utvecklare för att utföra denna procedur.

Om du plötsligt inte vet hur du startar serverkonsolen, kan du hitta den här informationen i artikeln om MySQL-kommandoraden, länken som jag redan skrivit tidigare.

Förresten, med de beskrivna metoderna är det också möjligt att importera en MySQL-tabell, och inte hela databasen. I det här fallet måste dumpen du laddar upp innehålla operationerna för att skapa den och fylla den med data.

Laddar data till en MySQL-databas från en fil i konsolen

Vi pratade om att återställa en MySQL-databas från en dump i konsolen. Nu är det dags att ta reda på hur du kan importera data från filer, inklusive xls och csv, till en MySQL-databas på samma sätt.

För denna uppgift har vi återigen samma två verktyg som i föregående fall: MySQL-kommandoraden och serverkonsolen.

Låt oss börja recensionen i ordning igen.

Så för att importera en fil i MySQL-kommandoraden, kör vi den igen och går till databasen där data kommer att laddas in.

LADDA DATAINFIL "sökväg_och_namn_på_dump_fil" I TABELL `database_table` KOLUMNER AVSLUTADE AV "," OMSLUTAD AV "\"" RADER AVSLUTADE AV "\n";

Glöm inte att om MySQL-servern startades med alternativet --secure-file-priv(vilket ofta händer när man använder MySQL-distributioner som ingår i WAMP/MAMP-sammansättningar), då måste filnamnet anges med hänsyn till systemvariabeln secure_file_priv.

För att importera en MySQL-databas till serverkonsolen utan att gå in i MySQL Shell behöver vi verktyget mysqlimport, som ingår i MySQL-distributionen, och dess följande anrop:

mysqlimport –u användarnamn –p databasnamn namn_och_sökväg_till_import_fil

Detta verktyg är en analog till SQL-kommandot LADDA DATAINFIL, endast för kommandoraden. Men frågan uppstår, varför, bland parametrarna för dess anrop, finns inte tabellen i vilken data från filen kommer att laddas?

Faktum är att mysqlimport helt enkelt fysiskt inte har denna parameter. Istället måste namnet på tabellen som data ska laddas in i namnet på den importerade filen.

De där. om du vill importera en Excel-tabell till en MySQL-tabell användare, då ska din fil anropas users.xls.

Förlängningen av den importerade filen, som redan nämnts, kan vara vad som helst.

Med mysqlimport kan du också ladda flera xls- eller csv-filer till MySQL samtidigt. För att data ska nå sin destination måste namnen på filerna och databastabellerna, som i föregående exempel, också matcha.

Om kolumnerna i den importerade filen plötsligt inte är i samma ordningsföljd som kolumnerna i databastabellen, måste du för att förtydliga deras ordning använda alternativet —columns i följande form:

Mysqlimport –u användarnamn –p databasnamn --kolumner kolumn1, kolumn2, ... namn_och_sökväg_till_import_fil

Naturligtvis, i mina exempel övervägde jag inte hela listan över mysqlimport-parametrar, eftersom några av dem är mycket specifika och används extremt sällan i praktiken.

Om du vill bekanta dig med dem finns deras fullständiga lista tillgänglig här - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

Funktioner för att ladda data till en MySQL-databas från en dump

Om du vill att processen med att importera en stor MySQL-databas ska gå snabbare, måste du skapa en databasdump med hjälp av speciella alternativ för mysqldump-kommandot, som jag skrev om i min tidigare artikel om att exportera en MySQL-databas, vars länk var postat i texten tidigare.

Tyvärr har MySQL-databasens importkommandon i sig inte sådana alternativ.

Det enda är att för att öka hastigheten när du laddar en stor databasdump kan du använda följande funktion.

1. Öppna dumpfilen (helst i filhanterare, eftersom vanliga redigerare helt enkelt kan bli överväldigade av stora filer).

2. Skriv följande rader i början av filen:

SET foreign_key_checks = 0; SET UNIQUE_CHECKS = 0; SET AUTOCOMMIT = 0;

Notera! De kanske redan finns där eller har kommenterats (många program som gör dumpningar kan lägga till dem automatiskt)

3. I slutet av filen skriver vi de omvända åtgärderna:

SET outside_key_checks = 1; SET UNIQUE_CHECKS = 1; SET AUTOCOMMIT = 1;

Förresten, dessa kommandon hjälper inte bara att påskynda importprocessen, utan också göra det möjligt.

Faktum är att om du någonsin har tittat på dumpfilen för att importera en MySQL-databas, kanske du har märkt att operationen för att ställa in strukturen för de laddade tabellerna ser ut så här:

SLIP TABELL OM FINNS `klienter`; SKAPA TABELL `klienter` (...);

De där. en sökning görs i databasen efter en tabell med samma namn som den som importeras och om en hittas tas den bort och skapas på nytt.

Och om en befintlig tabell plötsligt länkas med främmande nycklar till andra, kommer hela laddningen att misslyckas.

Därför är att inaktivera kontrollen för förekomsten av främmande nycklar och andra också en utmärkt garanti för ett framgångsrikt slutförande av MySQL-databasimportprocessen.

Funktioner för att importera csv till MySQL-databas och andra filer

När du laddar data till en MySQL-databas från textfiler kan du också behöva inaktivera främmande nycklar.

Dessutom, till skillnad från den tidigare situationen, kommer det i detta fall inte att vara möjligt att skriva direktiv i filen, eftersom SQL-kommandon i den kommer inte att accepteras och köras.

I en tidigare artikel om att exportera en MySQL-databas nämnde jag redan hur man gör detta med följande operation på MySQL-kommandoraden:

SET FOREIGN_KEY_CHECKS=0;

Däremot nämnde jag inte att MySQL-systemvariabeln FOREIGN_KEY_CHECKS har två betydelser: global och sessionell (för den aktuella sessionen).

Det globala värdet för MySQL-variabler är giltigt för alla åtgärder på MySQL-servern tills den startas om. Sedan kommer värdena för variablerna att återställas och de kommer att tilldelas standardvärden.

Sessionsvärdet för MySQL-systemvariabeln ställs endast in för varaktigheten av användarens session med MySQL-servern. En session eller session börjar när en klient ansluter till servern, då den tilldelas en unik anslutnings-id, och slutar när den kopplas från servern, vilket kan hända när som helst (till exempel på grund av en timeout).

Varför bestämde jag mig för att komma ihåg detta?

För när jag körde kommandon för att ladda en fil till en MySQL-databas via serverkonsolen, utan att gå in i MySQL-skalet, upptäckte jag att det inte fungerar att inaktivera kontroll av främmande nyckel med den tidigare beskrivna metoden.

Konsolen visade fortfarande ett felmeddelande orsakat av förekomsten av främmande nycklar i tabellen.

Och det uppstod av anledningen att kommandot ovan inaktiverade kontrollen för förekomsten av främmande nycklar inom sessionen, och inte globalt, vilket, förutom den angivna metoden, också kan utföras enligt följande:

SET SESSION variabelnamn = variabelvärde; SET @@session.variabelnamn = variabelvärde; SET @@variabelnamn = variabelvärde;

I ovanstående kommandon är variabeln tydligt markerad som session.

Och eftersom jag laddade en csv-fil i en MySQL-tabell via serverkonsolen, utan en direkt anslutning till MySQL-servern, skapades inte en session inom vilken mitt sessionsvariabelvärde skulle fungera.

Det slutade med att jag ställde in FOREIGN_KEY_CHECKS till global och importen lyckades.

Du kan göra detta på något av följande sätt:

SET GLOBAL variabelnamn = variabelvärde; SET @@global.variabelnamn = variabelvärde;

Efter att ha ändrat värdena är det en bra idé att granska variabelns värden för att verifiera att ändringarna trädde i kraft. För att visa sessions- och globala värden samtidigt, använd följande kommando:

VÄLJ @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;

Detta avslutar dagens artikel om att importera en MySQL-databas. Dela dina intryck och din egen utveckling i kommentarerna. Jag tror att många kommer att vara intresserade av din erfarenhet.

Vi ses! 🙂

P.S.: om du behöver en webbplats eller behöver göra ändringar i en befintlig, men det finns ingen tid eller lust för detta, kan jag erbjuda mina tjänster.

Mer än 5 års erfarenhet professionell webbutveckling. Arbeta med PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reagera, Vinkel och andra webbutvecklingstekniker.

Erfarenhet av att utveckla projekt på olika nivåer: målsidor, företagswebbplatser, Nätbutiker, CRM, portaler. Inklusive stöd och utveckling HighLoad-projekt. Skicka dina ansökningar via e-post [e-postskyddad].

Databaser (eller förkortade DB) på de flesta sajter har en storlek (vikt) på flera tiotals MB (megabyte). Den initiala storleken på databasen i början av olika projekt beror på strukturen på själva webbplatsen (CMS), men sedan ökar deras vikt för varje uppkomst av ett nytt rekord.

Registeren kan innehålla information om användarregistrering, kommentarer, personliga meddelanden, produkter, nyheter och annan data som lagras i webbplatsens databas.

Jag hade möjlighet att arbeta med flera sajter vars databasstorlek översteg 500 MB (magabyte), och på vissa till och med nådde 2 GB (gigabyte). Eftersom databaser av denna storlek är svåra att överföra med standardmetoder (på grund av hosting- och webbläsarbegränsningar), kommer jag att dela med mig av flera arbetsmetoder som hjälper dig att lösa sådana problem (migrering av stora databaser).

Exportera (ladda ner) stora MySQL-databaser via Sypex Dumper

Så låt oss börja vår övervägande av att lösa problemen med ett enklare alternativ, nämligen med en färdig lösning.

"Sypex Dumper" är en mjukvaruprodukt skriven i PHP som låter dig arbeta med databaser utan att använda phpMyAdmin. Fördelarna med Sypex Dumper inkluderar:

  1. Flerspråkig (stöder många språk).
  2. Det finns en gratisversion av skriptet (för våra syften är detta tillräckligt).
  3. Hög hastighet för uppgiftsslutförande.
  4. Arbeta med stora databaser.
  5. Bekvämt och intuitivt gränssnitt.
  6. Och många andra intressanta "chips".

Detta är vad vi kommer att använda för att ladda ner (överföra) stora databaser.

För att exportera (ta emot, ladda ner) databasen för en specifik webbplats för dig för vidare användning, måste du göra följande.

1. gratis från vår hemsida.

2. sxd på ett sätt som passar dig.

3. Gå sedan till adressen (Var din_webbplats.ru Att komma in».

4. På sidan som öppnas (om auktoriseringen lyckas), klicka en gång på avsnittet " Exportera» i toppmenyn. Om flera databaser är tillgängliga för användaren, välj den som vi ska exportera (ladda ner) från rullgardinsmenyn. Du kan lämna resten av inställningarna oförändrade och klicka på " Kör».


Jag vill notera, att du inte kan exportera hela databasen, utan bara några av dess tabeller efter behov.

5. Efter att processen att spara databasen har slutförts (du kan förstå detta i förloppsindikatorn), kan du ladda ner databasen du behöver genom att klicka på lämplig knapp.


Dessutom kommer alla exporterade databaser att lagras på din webbplats längs vägen /sxd/backup/. Om det misslyckas att spara databasen, kontrollera att mappen säkerhetskopiering Skrivbehörigheterna är 777.

Detta slutför exporten (nedladdningen) av databasen.

Import (nedladdning) av stora MySQL-databaser via Sypex Dumper

Ovan förklarade vi för dig hur du skaffar den nödvändiga databasen nu måste du överföra (importera) den till ett annat projekt, och för att göra detta gör vi följande.

1. gratis från vår hemsida.

2. Packa upp arkivet och ladda upp mappen till webbplatsen sxd på ett sätt som passar dig.

3. Till mappen /sxd/backup/ ladda den tidigare mottagna (nedladdade) databasen.

4. Gå sedan till adressen http://din_webbplats.ru/sxd/index.php(Var din_webbplats.ru– domänen för din webbplats), varefter ett datainmatningsformulär öppnas framför dig. I den anger du data för användaren som har rättigheter att hantera databasen du behöver och klickar på " Att komma in».

5. På sidan som öppnas (om auktoriseringen lyckas), klicka en gång på avsnittet " Importera» i toppmenyn. Om flera databaser är tillgängliga för användaren, välj den som vi ska importera (ladda) data till från rullgardinsmenyn. Du kan lämna de återstående inställningarna oförändrade och klicka på " Kör».


Jag vill notera att du inte kan importera hela databasen, utan bara några av dess tabeller efter behov.

6. Efter processen att importera (ladda) databasen är klar (du kan förstå detta av förloppsindikatorn), kan uppgiften anses vara avslutad.


Exportera (ladda ner) stora MySQL-databaser via SSH-terminal

SSH är ett nätverksprotokoll som låter dig fjärrstyra (via speciella kommandon) ett system eller en server. I Windows finns det många program för att arbeta med detta protokoll, varav det mest populära är "PuTTY".

På vissa värdsajter, som till exempel, finns en inbyggd Terminal höger i kontrollpanelen. Låt oss inte gå långt och överväga problemet som beskrivs i titeln med hjälp av hans exempel. Det är värt att notera att operationerna som beskrivs nedan kan göras i en separat SSH-klient.

1. Starta terminalen. Det ser ut så här:


2. Om du ansluter till servern via ett tredjepartsprogram, logga in på det genom att ange lämplig data (du kan hämta den i din värdkontrollpanel eller från din värdleverantör).

andra- Detta:

Mysqldump -u ANVÄNDARNAMN -p DATABAS > backup.sql

direkt själva exporten, där:

ANVÄNDARNAMN– inloggning för användaren som har tillgång till databasen.

DATABAS– namnet på databasen vi vill exportera.

backup.sql– namnet på filen där databasen kommer att sparas och sökvägen i förhållande till . Med den här designen kommer databasen att sparas till roten av hostingen.

4. i det tredje stegetStiga på" på tangentbordet. notera

När servern är redo att acceptera kommandon via SSH igen, kommer detta att innebära att databasexporten är klar och du kan ladda ner den via FTP eller genom värdfilhanteraren.

Export (och import) processen sänds inte i SSH, och om din databas är ganska stor, ha tålamod, eftersom du kan få ett svar från servern efter mer än 20 minuter.

Importera (nedladdning) av stora MySQL-databaser via SSH-terminal

Vi har redan tagit reda på vad SSH är ovan, och låt oss nu börja titta på hur man importerar en tidigare nedladdad databas till ett annat projekt.

1. Till roten av din hosting, ladda ner den tidigare nedladdade databasen på ett bekvämt sätt för dig.

2. Anslut till din värd/server via SSH.

så vi går definitivt till roten av värdskapet, och andra- Detta:

Således får vi en komplett lista över filer och kataloger för den aktuella katalogen. Låt oss se till att vår tidigare nedladdade databas finns bland dem.

4. Om allt är bra och basen är på plats anger du det sista kommandot:

Mysql -u ANVÄNDARNAMN -p DATABAS< backup.sql

ANVÄNDARNAMN– inloggning för användaren som har tillgång till databasen.

DATABAS– namnet på den databas som vi kommer att importera data till.

backup.sql– namnet på filen som kommer att laddas ner och sökvägen i förhållande till . Med denna design kommer databasen att importeras från värdroten.

5. Efter att ha angett kommandot kommer du att bli ombedd att ange lösenordet för den användare du angav i det fjärde steget. Ange ditt lösenord och klicka på " Stiga på" på tangentbordet. notera att inmatning av ett lösenord i SSH-terminalen inte visas, det vill säga om du anger lösenordet eller klistrar in det, kommer det alltid att finnas ett tomt utrymme på dess plats.

Efter detta, när servern igen är redo att acceptera kommandon via SSH, kommer detta att innebära att databasimporten är klar och du kan fortsätta arbeta med projektet.

När du precis börjar skapa en webbplats gör du det oftast på en lokal server. När den är klar måste den flyttas till en fjärrserver. Det är inte svårt att kopiera filer, men så här gör du importera databas till en fjärrserver? Ungefär hur man importerar en databas till PHPMyAdmin, jag kommer att förklara för dig i den här artikeln.

Det finns många sätt databasimport Men jag ska berätta vad jag tycker är det enklaste och det jag själv använder.

Steg 1

Det första du behöver göra är export databas från din nuvarande plats (särskilt en lokal server). Vårt mål är att få SQL-fråga vår databas. För att göra detta måste du göra följande:

Steg 2

Det andra och sista steget är att göra SQL-fråga, som du kopierade, till PHPMyAdmin, som finns på servern där du behöver importera databas. För att göra detta, följ dessa steg:

Som ett resultat kommer alla dina tabeller med alla poster att skapas på den nya servern.

Som du kan se, processen exportera och importera en databas i PHPMyAdmin förenklas till ett minimum, så det blir inga problem med detta.

Till sist skulle jag vilja ge dig ytterligare ett råd. Faktum är att det väldigt ofta finns en situation när du behöver importera inte hela databasen, men till exempel bara ett bord. Då är principen absolut densamma, bara när du exporterar behöver du inte bara välja databasen utan även tabellen som ska exporteras. Och sedan igen i toppmenyn klicka på " Exportera". Då är allt sig likt databasimport.

Om du har säkerhetskopierat eller exporterat din databas till en SQL-fil kan du importera den till en av ditt värdkontos MySQL-databaser via phpMyAdmin.

Notera. Det ska inte finnas en CREATE DATABASE-rad i en MySQL-databas. Annars kan importen misslyckas.

Med phpMyAdmin-gränssnittet kan du importera 8 MB data åt gången. Om du behöver importera en större fil, dela upp den i flera 8 MB delar.

Uppmärksamhet! Om du importerar en databas för hanterad WordPress-värd för att hålla din webbplats igång smidigt.

Importera SQL-filer till MySQL-databaser med phpMyAdmin

Efter detta kommer SQL-filen att köras och uppdatera databasen du valde i SQL-filen. Det kan ta flera minuter att återställa databasen.

Notera. Om du får felmeddelandet Script timeout passerad, om du vill avsluta importen, skicka in samma fil igen och importen kommer att återupptas, du kan omedelbart välja samma fil och återuppta processen.

Jag får ofta frågan hur man importerar en stor MySQL-databas till en server. Det är känt att phpMyAdmin som standard har begränsningar för storleken på den importerade databasen.

Om din soptipp inte är mycket större än den acceptabla gränsen kan du dela upp den i flera delar och importera den i flera omgångar. Detta är motiverat om gränsen till exempel är 2 MB och din databas är 5-10 MB stor. Det är tydligt att "klippa" en 100MB databas i 50 delar är en ganska arbetskrävande och tidskrävande process.

Det finns flera alternativ för att lösa detta problem.

Redigera webbserverns konfiguration

På VDS/VPS finns det inga speciella problem med detta, du behöver bara korrigera konfigurationen. Nämligen, i php.ini, öka de tillåtna maximala värdena för filer som laddas upp till servern, den maximala storleken för filer som överförs med POST-metoden:

Post_max_size = 2000M upload_max_filesize = 2000M

Dessutom, om din databas är mycket stor, bör du öka den maximalt tillåtna skriptexekveringstiden.

Max_execution_time = 32000 max_input_time = 32000

Och för säkerhets skull kan du öka storleken på den tillåtna mängden RAM:

Memory_limit = 512M

När du har gjort ändringar, se till att starta om webbservern.

Det är tydligt att den här metoden inte är lämplig för virtuell värd, eftersom... det innebär inte möjligheten att redigera konfigurationer.

Sypex Dumper

Du kan använda programvara från tredje part. Och den första applikationen som är värd att uppmärksamma är Sypex Dumper.

Efter att ha använt det för första gången för många år sedan och uppskattat alla dess möjligheter och fördelar, kan jag lugnt kalla det ett "måste ha". Sypex Dumper är en PHP-serverapplikation som inte kräver installation. Det räcker att kopiera det till exempel till roten på din webbplats i sxd-katalogen och anropa det i webbläsaren: http://Your_Site/sxd/. Det är värt att notera att du först bör placera en dump av din databas i backupkatalogen. Efter initialisering av skriptet kommer du att se auktoriseringspanelen för anslutning till databasen. Ange ditt användarnamn och lösenord. Värd och port är valfria endast om de är specifika.

Efter auktorisering kan du gå direkt till att importera databasen. I fält "Databas" databasen som du är ansluten till kommer att väljas, och i fältet "Fil" du kommer att se dumpen som du tidigare laddat upp till säkerhetskopieringskatalogen.

I de flesta fall behövs inga ytterligare inställningar längre och du kan säkert starta importen genom att klicka på knappen "Kör". Importen, beroende på databasens storlek och din internetanslutningshastighet, kan ta lite tid. Under importen kan du se vilka tabeller som för närvarande importeras till databasen. När skriptet är klart kommer du att se exekveringsloggen. Det ser ut ungefär så här:

Det är allt, faktiskt - databasen är importerad!

Trösta

Vi kommer inte att överväga att importera via konsolen. Jag tror att folk som använder konsolen utan mig vet hur man importerar vilken databas som helst. Men det är bättre för vanliga användare utan specialutbildning att inte åka dit. Eftersom att köra vissa kommandon kan det leda till allvarliga konsekvenser, inklusive fullständig krasch av servern.

Till sist

Jag antar inte att säga att Sydex Dumper är den enda och korrekta lösningen. Det finns andra mer eleganta metoder som kräver att användaren har viss kunskap och lämplig tillgång till serverinställningarna.

Men i en delad värdmiljö kommer Sydex Dumper verkligen att vara din oumbärliga assistent.

Prenumerera på mitt telegram och bli den första att få nytt material, inklusive det som inte finns på webbplatsen.







2024 gtavrl.ru.