Base di conoscenze
1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Risolvere un errore MySQL (il server è diventato non disponibile)
Questa guida consente di risolvere un errore di tipo "Query non valida: il server MySQL non risponde".
Introduzione
- Questo tipo di errore è spesso causato dal fatto di mantenere aperta una connessione MySQL senza inviare richieste per un intervallo di tempo superiore a quello dopo il quale la connessione viene chiusa: http://dev.mysql.com/doc/refman/5.7/en/gone-away.html
- Le variabili
wait_timeouteinteractive_timeoutche controllano questa disconnessione sono impostate a 30 secondi: http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html
Soluzioni
Per evitare l'errore "Il server MySQL non è più disponibile", ecco diverse possibili soluzioni:
Verifica e riconnessione automatica
Prima di eseguire una query, si consiglia di verificare se la connessione MySQL è ancora attiva. Se la connessione è stata interrotta, è possibile ripristinarla automaticamente prima di procedere con la query. Ecco un esempio in PHP:
if (!mysqli_ping($connexion)) {
mysqli_close($connexion);
$connexion = mysqli_connect($host, $user, $password, $database);
}La funzione mysqli_ping() verifica se la connessione è ancora valida. In caso contrario, lo script chiude la connessione e ne apre una nuova.
Invio periodico di un "ping"
Un altro metodo consiste nell'eseguire uno script che invia periodicamente un "ping" al database per mantenere attiva la connessione. Ad esempio, è possibile creare un'attività pianificata (cron job) che invia una richiesta leggera, come SELECT 1;, a intervalli regolari.
Regolazione dei parametri MySQL (Server Cloud)
Con un Server Cloud, è possibile aumentare i valori delle variabili wait_timeout e interactive_timeout dal menu MySQL del server per prolungare la durata della connessione prima che venga chiusa.
Link a questa FAQ: https://faq.infomaniak.com/499
Questa FAQ è stata utile?