Error Code: 2006 - MySQL server has gone away

Ciao a tutti, voglio caricare un file molto grande con SQLyog ma dopo un pò compare il seguente errore:

Error Code: 2006 - MySQL server has gone away

Ho letto in giro che quasi sicuramente il problema è la dimensione del file che devo caricare. Dovrebbe dipendere dal parametro "max_allowed_packet" del server, che di default mi pare sia 1MB. La soluzione è quella di riavviare il server cambiando quel parametro (è un parametro di avvio del server MySql)

Si deve cercare un file di nome my.ini o my.conf e scriverci dentro una riga come questa:

max_allowed_packet=16777216

con questa si imposta il limite a 16M.

Allora, ho aperto MySQL Administrator, sono entrata nella sezione "service control" e in "Config Filename" ho letto il percorso in cui trovare il file my.iny. Nella cartella indicata, però, c'è:

my

my-huge

my-large

e così via ma non my.iny. Come faccio?

Aiutatemi, please.

inviato 6 anni fa
lilux
X 0 X

Questo è un problema legato agli altri messaggi che hai inviato in questa discussione?

http://www.phpnews.it/forum/database/aprire-e-importare-file-csv-molto-grandi-navicat-o-mysql/msg27599/#msg27599

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Si, nel senso che il file che voglio importare è quello con estensione .csv che inizialmente non riuscivo a visualizzare. Avendo analizzato il suo contenuto, ora voglio importarlo in SQLyog per poi lanciare delle queries che mi permettano di modificare la tabella presente nel file.

risposto 6 anni fa
lilux
X 0 X

Facciamo una cosa: chiudiamo questa discussione.

Aprine una con titolo e descrizione del problema dettagliato e chiaro.

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Ciao,

io ho avuto il solito errore tempo fa, ed ho risolto modificando la direttiva wait timeout di mysql in quanto sul server dove stavo lavorando era settato a 10 sec.

Se non ricordo male il vaore di defult dovrebbe essere 28800 secondi o giù di li... comunque se lanci la query SHOW VARIABLES dovresti vedere a quanto è impostato sul tuo server.

Per modificare il valore devi agire sul file my.cnf, solitamente dentro la cartella /etc, dopodiché devi riavviare mysql, se invece non vuoi riavviare il servizio puoi lanciare la query "set global wait_timeout = [secondi]" e la modifica verrà vista al volo, ricordati comunque di modificare il my.cnf per non perdere la variazione al prossimo riavvio.

Bye.

risposto 6 anni fa
guidoch
X 0 X

Ciao, ho fatto come mi hai detto tu: ho lanciato la query SHOW VARIABLES e il valore di default di wait timeout è proprio di 28800 sec.

Purtroppo il file my.cnf non l'ho trovato. Come posso trovarlo?

risposto 6 anni fa
lilux
X 0 X

mmm... se il valore è 28800 allora non penso che serva modificare la variabile wait timeout.

Il file my.cnf solitamente è nel percorso /etc/my.cnf

Ma stai lavorando su Linux o Windows?

risposto 6 anni fa
guidoch
X 0 X

Se su linux è bene specificare la distribuzione :)

ciao

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Del file ancora nessuna traccia...anche se mi sembra strano!

Sto utilizzando Windows Vista.

risposto 6 anni fa
lilux
X 0 X

Su windows devi cercare/modificare il file my.ini nella cartella di installazione di MySQL

prova ad innalzare il parametro max_allowed_packet

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

Forse ho combinato un guaio. Dato che nella cartella di installazione di MySQL non c'era il file my.ini, ho deciso di disinstallare MySQL e di reinstallarlo. Nel momento in cui l'ho reinstallato  mi è stato comunicato che in C: non c'era più spazio sufficiente e allora l'ho installato in D:

 Ho fatto male?

Comunque, ora il file my.ini c'è solo che non compare il parametro max_allowed_packet ma nella parte "server section" compaiono  solo i parametri:

port=3306

basedir="D:/"

datadir="C:/Program Files/Data/"

default-character-set=latin1

default-storage-engine=INNODB

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=100

query_cache_size=0

table_cache=256

tmp_table_size=9M

thread_cache_size=8

ognuno dei quali è preceduto da dei commenti.

Cosa faccio? Aggiungo il parametro max_allowed_packet alla lista?

risposto 6 anni fa
lilux
X 0 X

Nel file my.ini inserisci queste righe:

[mysqld]
max_allowed_packet=32M

(32 mega è solo un esempio)

Se nel file esiste già la riga [mysqld] allora devi solo accodare la direttiva max_allowed_packet sotto questa riga

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda