Un’importazione si ferma per “packet too large”? Controlla la singola istruzione SQL e i limiti di client e server, non soltanto il peso del file.
Indice dei contenuti
Che cosa significa
Una query, un risultato o un valore supera la dimensione massima del pacchetto accettato dal client o dal server.
Come riconoscere il problema
- import fermo su una riga.
- packet too large nel log.
- BLOB falliti.
- server has gone away.
- dump con extended inserts.
Cause più frequenti
- Insert molto grande
- Blob o longtext
- Dump con extended inserts
- Client con limite diverso
- Plugin di migrazione
- Valore server basso
Diagnosi passo per passo
- Individua l’istruzione o il valore che causa l’errore. La dimensione totale del file SQL non coincide con quella del singolo pacchetto.
- Controlla max_allowed_packet sul server e il limite del client usato per importare. Cambiare strumento non elimina automaticamente il limite lato server.
- Verifica se il dump raggruppa molte righe in un solo INSERT oppure contiene un singolo valore BLOB o LONGTEXT molto grande.
Procedura di risoluzione
- Se il problema è un INSERT con molte righe, rigenera una copia del dump con gruppi più piccoli. Non dividere il file con tagli arbitrari che spezzino istruzioni o valori SQL.
- Se è un singolo valore a superare il limite, ridurre il numero di righe per INSERT non basta. Valuta con il gestore una configurazione compatibile o una diversa gestione del dato nell’applicazione.
- L’eventuale aumento va verificato sia sul client sia sul server. L’uso della riga di comando, da solo, non aggira max_allowed_packet.
- Riprova in un database separato e controlla i dati caricati. Conserva il dump originale e verifica cosa è rimasto dall’importazione interrotta prima di ripartire.
Guide Xlogic correlate
- MySQL Too many connections: come risolvere
- MySQL Error 1064: errore di sintassi SQL
- MySQL server has gone away: cause e soluzioni