I database sono componenti chiave della maggior parte dei siti web moderni, per cui è normale spaventarsi parecchio quando vi imbattete in un errore del database. L’errore “MySQL Server Has Gone Away“, per esempio, può farvi credere che il vostro database sia andato perso. Ciò significa che potreste dover ricorrere al vostro ultimo backup per far funzionare il vostro sito.

Nonostante l’effetto intimidatorio, tuttavia, l’errore “MySQL server è andato via” è piuttosto facile da correggere. Infatti, con le giuste istruzioni, il vostro sito web dovrebbe essere ripristinato e funzionante in pochi minuti.

In questo articolo vi mostreremo come si presenta l’errore “MySQL Server Has Gone Away” e vi mostreremo cosa può causarlo in WordPress. Poi vi insegneremo a correggerlo ed evitare che si ripresenti in futuro.

Mettiamoci al lavoro!

Un’Introduzione all’Errore “MySQL Server Has Gone Away”

Per prima cosa, diamo una rapida occhiata a come appare l’errore “MySQL Server Has Gone Away”:

Un browser che mostra l'errore
Browser che mostra l’errore “MySQL Server Has Gone Away”.

L’errore in sé è abbastanza semplice e appare quasi sempre allo stesso modo. A seconda del browser utilizzato e della configurazione del vostro server, tuttavia, la formulazione specifica potrebbe cambiare un po’.

Per quanto riguarda l’errore in sé, ha a che fare con il vostro database MySQL, come si può immaginare dal nome. Per essere più precisi, uno di questi tre motivi tende a causare l’errore nella maggior parte dei siti web:

  1. C’è una tabella rotta all’interno del vostro database. Il vostro database si è corrotto, quindi dovete tornare a un backup recente o dovete ripararlo.
  2. La vostra impostazione di ‘timeout’ PHP è troppo bassa. Se uno script PHP ha bisogno di accedere al vostro database e non può recuperare le informazioni all’interno della finestra di timeout che è stata impostata, anche questo può innescare il suddetto errore.
  3. I “pacchetti” sono caduti o sono troppo grandi. Il server ritiene che questo sia il caso, in sostanza chiude la connessione e lancia l’errore.

Per fortuna tutti questi problemi possono essere facilmente affrontati. Parliamo di come avviare il processo di risoluzione dei problemi.

Come Correggere l’Errore “MySQL Server Has Gone Away” in WordPress (3 Metodi)

Come abbiamo visto, ci sono alcune cause potenziali per questo particolare errore di WordPress.

Per questo motivo, ci sono diverse soluzioni possibili. Nella maggior parte dei casi, una delle correzioni qui sotto dovrebbe eliminare l’errore sul vostro sito web. Quindi, se uno non funziona, si può semplicemente passare al successivo.

1. Modificare il File WordPress wp-db.php

Se l’impostazione del timeout PHP del vostro sito web è troppo bassa e il vostro database è troppo grande, il recupero dei dati necessari durante quella finestra può essere un problema. Come abbiamo detto prima, questo può far scattare l’errore “MySQL Server Has Gone Away“.

Per evitare che ciò accada, è necessario modificare uno dei file principali di WordPress, chiamato wp-db.php. Potete trovare questo file nella vostra cartella principale di WordPress, aprendo la directory wp-includes:

Schermata dell’FTP in cui è evidenziato il file wp-db.php
Il file wp-db.php

Per accedere a questi file, vi consigliamo di usare un client FTP come FileZilla e di connettervi tramite SFTP (comprendere la differenza tra FTP e SFTP). Una volta connessi al vostro sito, localizzate wp-db.php e fate clic con il tasto destro del mouse su di esso per aprire il file con il vostro editor di testo locale predefinito. Seguite questa guida rapida per mostrare tutti i file nascosti in Filezilla.

Quindi cercate nel file la riga seguente:

$this->ready = true;

Aggiungete la seguente riga proprio sotto il codice:

$this->query("set session wait_timeout=300");

Quello che fa questo codice è impostare il valore del timeout di PHP a 300 secondi, che dovrebbe essere molto di più di quanto sia necessario per evitare la comparsa di eventuali errori.

Ora salvate le modifiche nel vostro file wp-db.php e verificate che il vostro sito web si stia caricando come dovrebbe.

Se siete utenti Kinsta, non dovreste avere bisogno di modificare le impostazioni di timeout PHP del vostro sito web. Tutti i nostri piani hanno un valore di timeout di base di 300 secondi e possiamo aiutarvi ad aumentarlo a seconda delle vostre esigenze.

2. Riparare il Database WordPress

A volte il vostro database WordPress può corrompersi, il che a sua volta può portare ad errori quando si cerca di stabilire una connessione con esso. Non è una cosa comune, ma può accadere nel corso della normale crescita di un sito web, quando si aggiungono più tabelle al database (così come informazioni sui plugin e sui temi).

Per risolvere questo problema, è possibile usare una funzione WordPress integrata per riparare il database. Prima, però, dovrete attivare questa funzione. Ciò comporta la navigazione nella directory principale di WordPress e l’apertura del file wp-config.php per poterlo modificare.

Una volta aperto il file, scorrete fino in fondo e aggiungete la seguente riga:

define('WP_ALLOW_REPAIR', true);

Quella semplice riga di codice dice a WordPress di abilitare la funzione di riparazione del database. Salvate le modifiche a wp-config.php e chiudete il file. Per eseguire la funzione, basta visitare il seguente URL:

https://yourwebsite.com/wp-admin/maint/repair.php

Quella semplice riga di codice dice a WordPress di abilitare la funzione di riparazione del database. Salvate le modifiche a wp-config.php e chiudete il file. La prima opzione è tutto ciò che serve per risolvere l’errore “MySQL server has gone away“:

L'opzione riparazione del database in WordPress
L’opzione riparazione del database in WordPress

Il processo non dovrebbe richiedere molto tempo e, una volta fatto, l’errore in questione dovrebbe essere eliminato. Tuttavia, avete ancora un po’ di pulizia da fare, in quanto dovrete disattivare la funzione di riparazione del database sul vostro sito web. Se non lo fate, chiunque potrebbe attivarla accedendo allo stesso URL.

Il processo non dovrebbe richiedere molto tempo e, una volta fatto, l’errore in questione dovrebbe essere eliminato. Quindi salvate le vostre modifiche nel file e chiudetelo.

3. Ripristinate il Vostro Sito Web Usando un Backup Tramite il Vostro Fornitore di Hosting

Se le opzioni viste fin qui falliscono, è sempre possibile usare un backup completo del sito web per ripristinarlo al punto in cui il database funzionava correttamente. Idealmente, lo farete con un backup recente in modo da perdere il minor numero possibile di dati.

Il problema è che non tutti gli host web di WordPress offrono funzionalità di backup integrate per i loro utenti. Ciò significa che spesso rimanete bloccati con soluzioni manuali come i plugin. Questi strumenti non sono necessariamente un male, ma se non avete accesso all’area di amministrazione di WordPress, il ripristino di un backup diventa un’impresa ardua.

Qui a Kinsta, invece, si ha accesso a backup completi del proprio sito web con ogni piano. Per ripristinare il vostro sito (compreso il suo database) a un punto precedente, dovete solo accedere alla bacheca del vostro hosting e cercare la scheda Backups:

Schermata del cruscotto MyKinsta con le opzioni per ripristinare il backup
Ripristinare il backup in MyKinsta

Fate clic sul backup che volete ripristinare e vedrete maggiori dettagli su quando è stato creato. Per ogni backup, c’è un pulsante Restore che potete usare per riportare il vostro sito web allo stato in cui si trovava in quel momento.

Ricordate, però: l’utilizzo di questa funzionalità sovrascriverà la versione attuale del vostro sito web. Quindi vi conviene usarla come ultima risorsa solo quando sarete sicuri di non perdere nessuna informazione critica.

Riepilogo

Più il vostro sito web cresce, più dati dovrà memorizzare. Tutte queste informazioni confluiscono nella vostra banca dati WordPress. In alcuni casi, se diventa troppo grande, potreste incorrere in errori come “MySQL Server Has Gone Away“.

Se incontrate questo particolare errore, ecco tre modi per eliminarlo:

  1. Modificate il file WordPress wp-db.php.
  2. Riparate il vostro database WordPress.
  3. Ripristinate il vostro sito web tramite un backup dal vostro provider di hosting.

In quest’altra guida, vi mostriamo dei suggerimenti extra e gli step da seguire per correggere gli errori del vostro database WordPress.

Ora che sapete come risolvere il problema, è il momento di eliminare questo fastidioso messaggio di errore. Se avete ancora problemi con MySQL, date un’occhiata alla nostra guida su come risolvere l’errore di MySQL 1064.