2013-01-04 9 views
12

Ich habe eine VERY große MySQL-Backup-Datei gegeben. Es ist ~ 630 MB ... Ich denke, jemand dachte, es wäre eine gute Idee, Bilder in einer Datenbank zu speichern ... Wie auch immer, ich muss die Daten irgendwie in MySQL wiederherstellen. Aber ich kann es wegen der Dateigröße nicht machen.Importieren Sie große .SQL-Datei in MySQL

Zuerst habe ich versucht, es mit MySQL Workbench zu tun. Aber wenn ich versuche, die Datei zu importieren es mir die folgende Fehlermeldung gibt:

Could not allocate xxxxx bytes to read file C:\backup.sql

Dann habe ich versucht, es durch Eingabeaufforderung zu tun. Ich trat nach dem in cmd:

C:\> mysql -u user -pPassword database < C:\backups.sql 

Das gibt mir schließlich die folgende Warnung:

ERROR 2006 (HY000) at line 68230: MySQL server has gone away

Vermutung, die auch wegen der großen Dateigröße ist?

Ich habe keine anderen Ideen, wie Sie die Daten wiederherstellen. Ist das irgendwie noch möglich?

+0

Öffnen Sie einen Text-Editor, und teilen Sie die Datei in Teilen. Achten Sie darauf, dass Sie eine gültige Syntax haben. – P1nGu1n

+0

Wie lange dauert es, bis es weggeht? Ich habe 1.2GB SQL-Datei BTW mit mysql-Client wiederhergestellt, so ist es definitiv möglich. –

+1

Ich bin kein MySQL-Experte, aber fand diesen Artikel, der sich auf Timeout-Einstellungen in der Konfigurationsdatei bezieht, die die Ursache für Ihr Problem sein könnten angesichts der Größe der Datei ... http://thenitai.com/2010/10/31/a-Lösung-zu-mysql-error-2006-hy000-mysql-server-hat-weg/ – bUKaneer

Antwort

11

Die Erhöhung der wait_timeout und/oder interactive_timeout sollte helfen. Zuerst den aktuellen Wert überprüfen:

C:\> mysql -hlocalhost -uroot -proot 

mysql> SHOW VARIABLES LIKE 'wait_timeout'; 

Wenn diese sehr niedrig ist (zB 30 Sekunden), dann erhöhen sie (zB 5 Minuten):

mysql> SET SESSION wait_timeout = 300; 
mysql> SET SESSION interactive_timeout = 300; 

Dann führen Sie Ihre SQL-Datei:

mysql> \. database.sql 
+2

Ich habe auch das 'interactive_timeout' in etwas Großes verwandelt. Aber das mit dem 'wait_timeout' hat mir nicht geholfen. Danach habe ich auch das "connect_timeout" von "10" auf "10000" geändert und das hat sich für mich gelohnt. – w00

+0

Es ist Arbeit für mich –

3

Ich hatte eine 3.5G-Dump-Datei, ich habe versucht, es mit PhpMyAdmin und MySql Workbench zu importieren, aber ohne Erfolg. So habe ich nur die Konsole, um sie auszuführen

# mysql -u user_name -pYour_passwd your_db < your_dump.sql 

und es funktioniert super