Come posso risolvere l'errore "MySQL server has gone away" durante la connessione alla mia istanza database MySQL di Amazon RDS?

3 minuti di lettura
0

Ho provato a interrogare un'istanza database di Amazon Relational Database Service (Amazon RDS) che esegue MySQL e ho ricevuto uno dei seguenti messaggi di errore: "MySQL server has gone away" o "Lost connection to server during query".

Breve descrizione

Se il server è scaduto e ha chiuso la connessione, potresti ricevere uno dei seguenti errori:

  • CR_SERVER_GONE_ERROR - The client couldn't send a question to the server.
  • CR_SERVER_LOST - The client didn't get an error when writing to the server, but the client didn't get a full answer (or any answer) to the question.

Per ulteriori informazioni, consulta la documentazione MySQL per MySQL server has gone away.

Risoluzione

Consulta le seguenti cause e relative risoluzioni per questi errori:

  • Se una connessione rimane inattiva per troppo tempo, la connessione potrebbe essere terminata erroneamente dal client. Per risolvere questo problema, verifica che i timeout delle applicazioni siano più brevi dei timeout di MySQL e assicurati che le tue applicazioni chiudano le connessioni inattive.
  • Se una connessione scade, aumenta i timeout per MySQL aumentando i parametri wait_timeout e interactive_timeout utilizzando un gruppo di parametri personalizzato. Per maggiori informazioni, consulta Working with DB parameter groups.
  • Se la query che genera l'errore sta recuperando un set di dati di grandi dimensioni, aumenta il parametro della dimensione max_allowed_packet utilizzando un gruppo di parametri personalizzato. Per ulteriori informazioni, consulta Modifying parameters in a DB parameter group.
    Nota: per Amazon Aurora, puoi modificare i parametri e impostarli in un gruppo di parametri del cluster da applicare all'intero livello del cluster. L'impostazione in un gruppo di parametri database applica i parametri solo a livello di istanza. Per il database MySQL di Amazon Lightsail, è necessario verificare se i parametri sono disponibili per la modifica prima di modificarli utilizzando l'interfaccia della linea di comando (CLI). Per ulteriori informazioni, consulta Updating database parameters in Amazon Lightsail. Per l'istanza Lightsail o il database MySQL locale del server o Amazon Elastic Compute Cloud (Amazon EC2) MySQL, puoi impostare il parametro nel file di configurazione. Puoi anche impostare global xxx, in modo simile a come è impostato in un normale ambiente MySQL on-premise.
  • Se l'errore si verifica solo quando si restituiscono set di dati di grandi dimensioni, il client potrebbe utilizzare un valore MTU elevato di 9001. Per risolvere questo problema, riduci il valore MTU TCP/IP del client. Per informazioni sulla modifica del valore MTU del client, consulta Configuring the MTU of an Instance
  • Se alcuni parametri init_connect sono impostati su un valore che non consente l'elaborazione del parametro, le connessioni client associate possono fallire. Assicurati che tutti i parametri init_connect siano elaborati correttamente. Assicurati che gli utenti dispongano delle autorizzazioni EXECUTE per tutte le procedure a cui si fa riferimento come parametro init_connect.
  • Se tutte le connessioni si interrompono contemporaneamente, verifica che le altre connessioni funzionino ancora quando si verifica questo problema. Per risolvere questo problema, verifica che l'istanza database MySQL non si blocchi o si guasti visualizzando gli eventi di Amazon RDS e controllando i log degli errori di MySQL.

Informazioni correlate

Connecting to a DB Instance running the MySQL database engine

Modifying an Amazon RDS DB instance