sql >> Database teknologi >  >> RDS >> Mysql

Sådan forhindrer du forbindelsestimeout for store MySQL-importer

Strategier til import af store MySQL-databaser

PHPMyAdmin Import

Chancerne er, at hvis du læser dette, var PHPMyAdmin ikke en mulighed for din store MySQL-databaseimport. Ikke desto mindre er det altid et forsøg værd, ikke? Den mest almindelige årsag til fejl ved PHPMyAdmin-import er overskridelse af importgrænsen. Hvis du arbejder lokalt eller har din egen server, kan du prøve at ændre MySQL ini-indstillingerne, der normalt findes i my.ini-filen i MySQL-installationsmappen. Hvis du arbejder med WAMP på Windows, kan du få adgang til den fil ved hjælp af WAMP-kontrolpanelet under MySQL> my.ini. Husk at genstarte WAMP, så dine nye indstillinger bliver brugt. Indstillinger, du måske ønsker at øge her, omfatter:

max_allowed_packet
read_buffer_size

Selv med forbedrede MySQL-importindstillinger kan du stadig opleve, at importen timeout på grund af PHP-indstillinger. Hvis du har adgang til PHP.ini, kan du foretage ændringer i den maksimale udførelsestid og relaterede indstillinger. I WAMP skal du få adgang til filen PHP.ini under WAMP-kontrolpanelet på PHP> php.ini. Overvej at hæve grænserne for følgende indstillinger, mens du prøver store MySQL-importer:

max_execution_time
max_input_time
memory_limit

Brug af Big Dump forskudt MySQL-dumpimporter

Hvis grundlæggende PHPMyAdmin-importering ikke virker, kan du prøve Big Dump-scriptet fra Ozerov.de for forskudt MySQL-import. Hvad dette nyttige script gør, er at køre din import i mindre blokke, hvilket er præcis, hvad der ofte er nødvendigt for at kunne importere et stort MySQL-dump. Det er en gratis download tilgængelig på http://www.ozerov.de/bigdump/ .

Processen med at bruge Big Dump er ret enkel:du placerer dybest set din SQL-importfil og Big Dump-scriptet sammen på serveren, indstiller et par konfigurationer i Big Dump-scriptet og kører derefter scriptet. Big Dump klarer resten!

Et centralt punkt ved denne ellers fantastiske mulighed er, at den slet ikke vil fungere på MySQL-eksporter, der indeholder udvidede inserts. Så hvis du har mulighed for at forhindre udvidede indsatser, så prøv det. Ellers bliver du nødt til at bruge en anden metode til at importere din store MySQL-fil.

Gå til kommandolinjen med MySQL-konsollen

Hvis du kører WAMP (og selvom du ikke gør det), er der altid mulighed for at skære ind i benet og importere din store MySQL-database ved hjælp af MySQL-konsollen. Jeg importerer en 4GB database på denne måde, mens jeg skriver dette indlæg. Det er faktisk derfor, jeg har lidt tid til at bruge på at skrive, for selv denne metode tager tid, når du har en 4GB SQL-fil at importere!

Nogle udviklere (normalt mig) bliver skræmt ved at åbne en sort skærm og skrive kryptiske kommandoer ind i den. Men det kan være befriende, og når det kommer til MySQL-databaser, er det ofte den bedste vej at tage. I WAMP får vi adgang til MySQL-konsollen fra WAMP-kontrolpanelet på MySQL> MySQL-konsol. Lad os nu lære de 2 simple MySQL-konsolkommandoer, du skal bruge for at importere en MySQL-database, kommandolinjestil:

use `db_name`

Kommando use efterfulgt af databasenavnet fortæller MySQL-konsollen, hvilken database du vil bruge. Hvis du allerede har opsat databasen, som du importerer til, så starter du med at udstede use kommando. Antag, at din database hedder my_great_database . I dette tilfælde skal du udstede følgende kommando i MySQL-konsollen. Bemærk, at kommandoer skal slutte med et semikolon.

mysql-> use my_great_database;

mysql-> source sql_import_file.sql

Kommando source efterfulgt af placeringen af ​​en SQL-fil importerer SQL-filen til den database, du tidligere har angivet med use kommando. Du skal angive stien, så hvis du bruger WAMP på din lokale server, start med at placere SQL-filen et sted, der er let at komme til, såsom C:\sql\my_import.sql. Den fulde kommando med denne eksempelsti ville være:

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

Når du har kørt denne kommando, skal SQL-filen begynde at blive importeret. Lad forespørgslerne køre, og lad importen fuldføre, før du lukker MySQL-konsollen.

Yderligere dokumentation for MySQL kommandolinje kan findes her:http:// dev.mysql.com/doc/refman/5.5/en/mysql.html .

En anden løsning er at bruge MySQL Workbench .



  1. Generer tilfældige heltal uden kollisioner

  2. MySQL MED klausul

  3. MySQL:Sådan får du længden af ​​tekst i en kolonne

  4. Filtrering efter OFFSET-FETCH-indstillinger i Vælg forespørgsel - SQL Server / TSQL vejledning del 118