in sviluppo

“mysql has gone away” durante importazione

Da pochi giorni ho cambiato notebook e un pezzo alla volta sto migrando tutto sul nuovo sistema.
Tra le tante cose da portare avevo anche i database dei progetti dei quali ho fatto sviluppo in locale.

Ho deciso di esportarli tutti con un’unico dump e fin qui tutto bene (circa 1gb di dati):
mysqldump -u root -p --all-databases > alldb.sql

Trasferisco da un macchina all’altra e quando provo ad importarli ricevo un bellissimo: mysql has gone away.

mysql-has-gone-away

Ricordo che in passato avevo avuto un problema simile che avevo risolto modificando il timeout.
Breve ricerca su google e aggiungo queste 3 righe nel file di configurazione impostando i valori ben oltre i valori di default.


wait_timeout = 128800
connect_timeout = 120
interactive_timeout = 128800

Il risultato non cambia: mysql has gone away.
Aumento ancora ma nulla…

Prendo in considerazione di esportare i database uno alla volta ma sono piĆ¹ di 50 e non ne ho voglia…

Ricontrollo l’errore e vedo che si ferma sempre alla stessa riga.
Apro il dump e vado a vedere: si tratta di una INSERT multipla molto (molto) lunga.

Scorro le altre variabili presenti nel file di configurazione ed ecco davanti a me la causa del problema:
max_allowed_packet = 1M

Questa variabile globale imposta la dimensione massima dei pacchetti e nel mio caso era troppo piccola per quella query estramamente grossa.
La porto da 1 a 5M, riavvio il servizio e lancio l’importazione che questa volta arriva al fondo senza problemi.

La prossima votla spero di ricordami di aver scritto qui la soluzione…

Illustrazione di Elena Triolo

Write a Comment

Comment