2013-01-04 7 views
12

Mi è stato dato un file di backup mysql di grandi dimensioni MOLTO. È ~ 630 MB ... Immagino che qualcuno abbia pensato che fosse una buona idea memorizzare le immagini in un database ... Comunque, ho bisogno di ripristinare i dati in qualche modo in MySQL. Ma non riesco a farlo a causa della dimensione del file.Importare file .sql di grandi dimensioni in MySQL

All'inizio ho provato a farlo con MySQL Workbench. Ma quando provo a importare il file mi dà il seguente errore:

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

poi ho cercato di farlo attraverso prompt dei comandi. Ho inserito il seguente in cmd:

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

che alla fine mi dà il seguente avviso:

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

intuire che è anche a causa della grande dimensione del file?

Non ho altre idee su come ripristinare i dati. È ancora possibile in qualche modo?

+0

aprirlo con un editor di testo e dividere il file in più parti. Fai attenzione a mantenere una sintassi valida. – P1nGu1n

+0

Quanto tempo ci vuole prima che vada via? Ho ripristinato il file sql da 1,2 GB btw usando il client mysql quindi è sicuramente possibile. –

+1

Non sono un esperto di MySQL ma ho trovato questo articolo che si riferisce alle impostazioni di timeout nel file di configurazione che potrebbero essere la causa del tuo problema data la dimensione del file ... http://thenitai.com/2010/10/31/a-solution-to-mysql-error-2006-hy000-mysql-server-has-gone-away/ – bUKaneer

risposta

11

L'aumento di wait_timeout e/o interactive_timeout dovrebbe essere d'aiuto. In primo luogo verificare il valore corrente:

C:\> mysql -hlocalhost -uroot -proot 

mysql> SHOW VARIABLES LIKE 'wait_timeout'; 

Se questo è molto bassa (ad esempio 30 secondi), allora aumentano (per esempio 5 minuti):

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

quindi eseguire il file SQL:

mysql> \. database.sql 
+2

Ho anche cambiato 'interactive_timeout' in qualcosa di grande. Ma con il "wait_timeout" non ho fatto il trucco per me. Dopo di ciò ho anche cambiato il 'connect_timeout' da '10' a' 10000' e questo ha fatto il trucco per me. – w00

+0

È lavoro per me –

3

Ho avuto un file di dump 3.5G, ho provato a importarlo con PhpMyAdmin e MySql workbench ma senza successo. Così ho appena usato la console per eseguirlo

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

e funziona benissimo