sql >> Databasteknik >  >> RDS >> Mysql

Hur man förhindrar anslutningstidsgränser för stora MySQL-importer

Strategier för att importera stora MySQL-databaser

PHPMyAdmin Import

Chansen är stor om du läser detta, PHPMyAdmin var inte ett alternativ för din stora MySQL-databasimport. Ändå är det alltid värt ett försök, eller hur? Den vanligaste orsaken till fel för PHPMyAdmin-importer är att importgränsen överskrids. Om du arbetar lokalt eller har en egen server kan du prova att ändra MySQL ini-inställningarna som vanligtvis finns i my.ini-filen som finns i MySQL-installationsmappen. Om du arbetar med WAMP på Windows kan du komma åt den filen med WAMP-kontrollpanelen under MySQL> my.ini. Kom ihåg att starta om WAMP så att dina nya inställningar kommer att användas. Inställningar som du kanske vill öka här inkluderar:

max_allowed_packet
read_buffer_size

Även med förbättrade MySQL-importinställningar kan du fortfarande upptäcka att importen timeout på grund av PHP-inställningar. Om du har tillgång till PHP.ini kan du göra ändringar i den maximala körtiden och relaterade inställningar. I WAMP öppnar du filen PHP.ini under WAMP-kontrollpanelen på PHP> php.ini. Överväg att höja gränserna för följande inställningar när du försöker stora MySQL-importer:

max_execution_time
max_input_time
memory_limit

Använda Big Dump Staggered MySQL dumpimporter

Om grundläggande PHPMyAdmin-import inte fungerar, kanske du vill prova Big Dump-skriptet från Ozerov.de för förskjutna MySQL-importer. Vad det här användbara skriptet gör är att köra din import i mindre block, vilket är exakt vad som ofta behövs för att lyckas importera en stor MySQL-dump. Det är en gratis nedladdning tillgänglig på http://www.ozerov.de/bigdump/ .

Processen att använda Big Dump är ganska enkel:du placerar i princip din SQL-importfil och Big Dump-skriptet tillsammans på servern, ställer in några konfigurationer i Big Dump-skriptet och kör sedan skriptet. Big Dump sköter resten!

En viktig punkt med detta annars fantastiska alternativ är att det inte fungerar alls på MySQL-exporter som innehåller utökade inlägg. Så om du har möjlighet att förhindra utökade inlägg, prova det. Annars måste du använda en annan metod för att importera din stora MySQL-fil.

Öppna kommandoraden med MySQL-konsolen

Om du kör WAMP (och även om du inte gör det) finns det alltid möjligheten att gå in och importera din stora MySQL-databas med MySQL-konsolen. Jag importerar en 4GB-databas på detta sätt när jag skriver det här inlägget. Vilket faktiskt är därför jag har lite tid att lägga ner på att skriva, för även den här metoden tar tid när du har en 4GB SQL-fil att importera!

Vissa utvecklare (vanligtvis jag) skräms av att öppna en svart skärm och skriva kryptiska kommandon i den. Men det kan vara befriande, och när det kommer till MySQL-databaser är det ofta den bästa vägen att ta. I WAMP kommer vi åt MySQL-konsolen från WAMP-kontrollpanelen på MySQL> MySQL Console. Låt oss nu lära oss de två enkla MySQL-konsolkommandona du behöver för att importera en MySQL-databas, kommandoradsstil:

use `db_name`

Kommandot use följt av databasnamnet kommer att berätta för MySQL-konsolen vilken databas du vill använda. Om du redan har ställt in databasen som du importerar till, börjar du med att utfärda use kommando. Anta att din databas heter my_great_database . I det här fallet, utfärda följande kommando i MySQL-konsolen. Observera att kommandon måste sluta med semikolon.

mysql-> use my_great_database;

mysql-> source sql_import_file.sql

Kommandot source följt av platsen för en SQL-fil kommer att importera SQL-filen till databasen du tidigare angett med use kommando. Du måste ange sökvägen, så om du använder WAMP på din lokala server, börja med att placera SQL-filen någonstans som är lätt att komma åt, till exempel C:\sql\my_import.sql. Det fullständiga kommandot med denna exempelsökväg skulle vara:

mysql-> source C:\sql\my_import.sql;

När du har kört det kommandot bör SQL-filen börja importeras. Låt frågorna köras och låt importen slutföras innan du stänger MySQL-konsolen.

Ytterligare dokumentation för MySQL-kommandoraden finns här:http:// dev.mysql.com/doc/refman/5.5/en/mysql.html .

En annan lösning är att använda MySQL Workbench .



  1. Skalningslösningar för MySQL (replikering, klustring)

  2. Hur tar man bort dubbletter från utrymmesseparerad lista med Oracle regexp_replace?

  3. Hibernate, id, orakel, sekvens

  4. Hur kan jag skicka en parameter till ett t-sql-skript?