2012-01-05 13 views
19

Ho un dump MYSQL da un database che sto cercando di spostare su un nuovo server db. Quando provo ad importare il mio dump sql, ricevo il seguente errore:Errore MySQL 2006 (HY000) alla riga 406: il server MySQL è andato via

MySQL Error 2006 (HY000) at line 406: MySQL server has gone away 

Googled il problema e la maggior parte delle persone risolto il problema modificando il valore di wait_timeout. Tuttavia, il mio valore corrente è impostato su 28800 (8 ore) e l'errore viene visualizzato in meno di 8 secondi durante l'esecuzione dell'importazione.

Ho anche provato a impostare il valore di max_allowed_packet su 1073741824 ma anche questo non ha risolto il problema.

Guardando attraverso il dump mysql, ci sono alcune colonne blob nel dump, ma la dimensione complessiva del file è solo di 6 MB.

Qualcuno ha qualche idea su cos'altro potrebbe essere il problema?

+2

Come soluzione temporanea, sono tornato al server del database di origine e sono riuscito a creare diversi file di dump più piccoli (5 tabelle alla volta). Quindi, ho importato ciascuno dei file di dump più piccoli e questo mi ha permesso di completare il trasferimento del mio database senza il messaggio di errore. – David

risposta

6

L'aumento di max_allowed_packet a 12 MB (12000000) ha risolto il problema per me durante il tentativo di importare un file da 130 MB.

Modificare il file ini o in Opzioni File/Rete in MySQL Workbench (è necessario il riavvio di MySQL).

Se si verifica ancora l'errore, provare ad aumentare ancora di più (100 MB). Ricorda solo di ridurlo quando hai finito.

47

L'aggiunta di questa risposta per il beneficio di ricercatori futuri, come spiega il motivo per cui l'aumento della dimensione del pacchetto ha risolto il problema:

The situation is that if a client sends a SQL-statement longer than the server max_allowed_packet setting, the server will simply disconnect the client. Next query from the same client instance will find that the ‘MySQL server has gone away’.

... But it would of course be much preferable to have the ‘got packet bigger’ error [Error: 2020 (CR_NET_PACKET_TOO_LARGE)] returned if that is the problem.

Tratto da e grazie per peter_laursen's blog post

su OSX 10.7 (Lion), ho creato un file, /etc/my.cnf con i seguenti contenuti:

[mysqld] 
max_allowed_packet = 12000000 

e poi si fermò t egli mysql server:

/usr/local/bin/mysql.server stop 

Quando si riavvia automaticamente sono stato in grado di eseguire i miei inserti.

+1

Bene ho avuto lo stesso problema anche per max_allowed_packet = 512M –

+1

@AbhijitBuchake - quindi probabilmente non è un problema di "pacchetto troppo grande", ma qualche altro motivo per la disconnessione. Sfortunatamente, non ho altri suggerimenti per te. –

+1

GRAZIE! Ho letto e provato oltre una dozzina di scenari. Ho reinstallato mysql 3 volte. Il trucco di cui sopra per my.cnf risolverlo. Stavo cercando di aggiungere un database mysql di 50m in mysql tramite la riga di comando. Questo ha reso la mia giornata totalmente! – user24793

0

1) Variazione nel file di configurazione di MySQL: # /etc/mysql/my.cnf

#section 
# 
[mysqld] 
# 
key_buffer    = 32M 
max_allowed_packet  = 32M 
thread_stack   = 512K 
thread_cache_size  = 64 
# 

2) demone MySql riavviare

/etc/init.d/mysql restart 

dovrebbe risolvere i vostri problemi.

Problemi correlati