L’errore nello stabilire una connessione al database (“error establishing a database connection”) è probabilmente uno degli errori più comuni e allarmanti tra quelli in cui possono imbattersi gli utenti di WordPress. È un errore molto simile allo schermo bianco della morte (WSOD). Questo errore indica che il vostro sito web non comunica più con il vostro database di WordPress, o non vi ha più accesso, e quindi l’intero sito web non funziona. Non è una cosa da prendere alla leggera e dovreste provare a risolvere il problema immediatamente in quanto può influenzare direttamente le vostre vendite, il traffico e le statistiche.

Ma non preoccupatevi, oggi analizzeremo con voi alcune situazioni comuni che causano questo errore e alcune semplici soluzioni per ripristinare il funzionamento del vostro sito in pochissimo tempo.

Cosa È l’Errore Nello Stabilire Una Connessione al Database?

Tutte le informazioni sul vostro sito WordPress, come dati dei post, i dati delle pagine, le meta informazioni, le impostazioni dei plugin, le informazioni di accesso, ecc. sono memorizzate nel vostro database MySQL. Gli unici dati che non sono memorizzati sono i contenuti multimediali come le immagini e i file dei vostri temi/plugin/core come index.php, wp-login.php, ecc. Quando qualcuno visita il vostro sito web, PHP esegue il codice sulla pagina e recupera le informazioni dal database, e poi le mostra al visitatore nel browser.

Se per qualche motivo questo non funziona correttamente, vi viene visualizzato l’errore nello stabilire una connessione al database, come mostrato di seguito. L’intera pagina è vuota perché non è possibile recuperare i dati per eseguire il rendering, in quanto la connessione non funziona correttamente. Questo non solo interrompe il frontend del sito, ma vi impedisce anche di accedere alla vostra dashboard di WordPress.

Tuttavia, i visitatori potrebbero non vedere questo errore nel frontend. Questo perché il vostro sito è molto probabilmente servito dalla cache fino a quando questa non scade. Ad esempio, su Kinsta, di default, tutti i siti WordPress sono memorizzati nella cache per un’ora. Dunque, se un sito è ancora servito dalla cache potrebbe apparire correttamente al visitatore.

Errore nello stabilire una connessione al database in Chrome

Errore nello stabilire una connessione al database in Chrome

Il nostro team di supporto può aumentare la durata della cache di un’ora o anche di una settimana, se lo desiderate. Se avete un sito che non cambia spesso, questo può effettivamente aumentare le prestazioni del sito, in quanto non sarà necessario acquisire nuovi file così spesso alla scadenza della cache. E in casi come quello descritto sopra, il frontend del sito (a meno che non abbiate uno script o una parte del tuo sito che interrompa la cache) rimarrebbe visibile molto più a lungo.

Quando i visitatori tentano di accedere al vostro sito mentre si verifica l’errore, viene generato nei vostri registri un codice di stato HTTP 500. Questo stesso codice di stato appare quando c’è un “internal server error”. Significa essenzialmente che qualcosa è andato storto sul server e che la risorsa richiesta non è stata consegnata. Quando tutto funziona correttamente, il vostro sito genera un codice di stato HTTP 200, che significa che tutto è a posto.

Errore nello stabilire una connessione al database Errore 500

Errore nello stabilire una connessione al database Errore 500

Se siete clienti di Kinsta, potete anche consultare il report della suddivisione degli errori 500 in MyKinsta analytics per vedere se si tratta di un problema ricorrente.

Suddivisione errore 500

Suddivisione errore 500

Situazioni Comuni che Causano Questo Errore

Quindi, perché esattamente viene generato questo errore? Bene, qui elenchiamo alcune cause comuni. E non preoccupatevi, approfondiremo ognuna di queste cause in modo da poter sempre sapere come venirne a capo. In genere è possibile risolvere questo errore in meno di 15 minuti.

  • Il problema più comune è che le credenziali di accesso al database non sono corrette. Il vostro sito WordPress utilizza informazioni di accesso separate per connettersi al suo database MySQL.
  • Il vostro database è corrotto. Con così tante parti in movimento con temi, plugin e utenti costantemente eliminati e installati, capita che i database vengano danneggiati. Ciò può essere dovuto a una tabella mancante o singolarmente danneggiata, o può succedere che alcune informazioni siano state cancellate accidentalmente.
  • Potreste avere file corrotti nella vostra installazione di WordPress. Questo può verificarsi anche a causa di hacker.
  • Problemi con il server del database. Dal lato dell’host web possono andar storte diverse cose, come un sovraccarico del database causato da un picco di traffico o la mancata risposta dovuta a troppe connessioni simultanee. Questo è in realtà abbastanza comune con gli host condivisi poiché utilizzano le stesse risorse per molti utenti sugli stessi server.

Come Risolvere l’Errore Nello Stabilire Una Connessione al Database

Prima di iniziare a cercare di risolvere il problema, consigliamo sempre di fare un backup. Molte delle raccomandazioni che forniamo di seguito richiedono la manipolazione delle informazioni presenti nel vostro database, quindi dovete cercare di non peggiorare le cose. Dovete sempre fare un backup prima di provare a sistemare il vostro sito WordPress, non importa quanto voi siate esperti di tecnologia.

Potete utilizzare un popolare plugin di backup di WordPress, come UpdraftPlus o Duplicator per eseguire il backup sia dei file che del database.

I backup non sono mai troppi; non importa quanto pensi di essere esperto di tecnologia. 😉 Click to Tweet

Se siete utenti di Kinsta, vi basterà approfittare della nostra funzionalità di backup ad un clic. Basta fare clic sul vostro sito WordPress in MyKinsta, poi su “Backup” e quindi su “Esegui backup adesso”.

Backup sito WordPress

Backup sito WordPress

Avete anche la possibilità di ripristinare un backup in produzione o in staging. Oppure potete eseguire manualmente il backup del vostro database MySQL utilizzando phpMyAdmin. Una volta eseguito il backup, è il momento di iniziare ad analizzare i vostri problemi di connessione al database.

1. Verificare le Credenziali di Accesso al Database

La prima cosa da fare è verificare che le credenziali di accesso al database siano corrette. Questo è di gran lunga il motivo più comune per cui viene generato il messaggio di errore nella connessione al database. Si verifica soprattutto quando si migra su un nuovo provider di hosting. I dati di connessione per il vostro sito WordPress sono memorizzati nel file wp-config.php che si trova generalmente nella root del vostro sito WordPress.

Contiene quattro importanti informazioni che devono essere corrette per consentire la connessione.

Nome del Database

// ** MySQL settings ** //
/** The name of the database for WordPress */
define('DB_NAME', 'xxxxxx');

Username del Database MySQL

/** MySQL database username */
define('DB_USER', 'xxxxxx');

Password del Database MySQL

/** MySQL database password */
define('DB_PASSWORD', 'xxxxxxxxx');

Nome host MySQL (server)

/** MySQL hostname */
define('DB_HOST', 'localhost');

Per accedere al vostro file wp-config.php potete connettervi al sito tramite SFTP e navigare fino alla root. Oppure, se state utilizzando cPanel, potete fare clic su “File Manager”, accedere alla root del sito e fare clic con il pulsante destro del mouse per modificare il file.

Gestione file in cPanel

Gestione file in cPanel

Ecco qui sotto un esempio di come appare il file quando viene aperto.

credenziali wp-config.php

credenziali wp-config.php

Ora dovete verificare i vostri valori correnti con quelli del vostro server, per assicurarvi che siano corretti. Seguite le indicazioni di seguito per gli utenti di cPanel e Kinsta.

Verifica delle Credenziali del Database in cPanel

La prima cosa da controllare è il nome del database. Per farlo è necessario accedere a phpMyAdmin in cPanel nella sezione Database.

phpMyAdmin in cPanel

phpMyAdmin in cPanel

Sul lato sinistro, dovreste vedere il nome del vostro database in basso. È possibile ignorare il database “information_schema” in quanto è utilizzato dall’host. Dovrete quindi confrontare tale nome con il valore di DB_NAME presente nel vostro file wp-config.php. Se i nomi corrispondono, allora non è questo il problema. Se non corrispondono, è necessario aggiornare il vostro file wp-config.php.

Nome database in cPanel

Nome database in cPanel

Potete anche verificare che questo sia il database corretto, assicurandovi che contenga l’URL del vostro sito WordPress. Per farlo, basta fare clic sul database, quindi sulla tabella wp_options (questa potrebbe avere un nome leggermente diverso per motivi di sicurezza, come wpxx_options). Nella parte superiore della tabella, verranno visualizzati l’URL e il nome del vostro sito. Se questi corrispondono al vostro sito reale, siete nel posto giusto.

Verifica URL sito in phpMyAdmin

Verifica URL sito in phpMyAdmin

Se il nome del tuo database era già corretto e ricevete ancora il messaggio di errore nello stabilire una connessione al database, dovrete anche controllare il nome utente e la password. Per farlo dovrete creare un nuovo file PHP nella directory principale del vostro sito WordPress e inserire il codice che segue. Potete assegnargli il nome che preferite, come checkdb.php. Cambiate semplicemente i valori di db_user e db_password con quelli presenti nel vostro file wp-config.php.

<?php 
$test = mysqli_connect('localhost', 'db_user', 'db_password');
if (!$test) {
die('MySQL Error: ' . mysqli_error());
}
echo 'La connessione al database funziona correttamente!';
mysqli_close($testConnection);

Quindi cercate questo file nel vostro sito WordPress: https://yourdomain.com/checkdb.php. Se ricevete un errore “MySQL Error: Access denied” allora avete la conferma che il vostro nome utente o la vostra password sono sbagliati e dovrete procedere al passaggio successivo per reimpostare le credenziali.

Accesso negato MySQL

Accesso negato MySQL

Invece qotto c’è il messaggio che vorreste vedere, “La connessione al database funziona correttamente!”. Ma, ovviamente, se aveste ricevuto questo messaggio forse non sareste qui. Assicuratevi di cancellare/rimuovere questo file quando avrete concluso i test.

Connessione al database eseguita correttamente

Connessione al database eseguita correttamente

Quindi sarà necessario reimpostare il nome utente e la password. In cPanel, fate clic su Database MySQL, nella sezione Database.

Database MySQL in cPanel

Database MySQL in cPanel

Scorrete verso il basso e create un nuovo utente MySQL. Scegliete un nome utente e una password univoci in modo che non possano essere facilmente indovinati. Il generatore di password fornito funziona davvero alla grande. Quindi fate clic su “Crea utente”. In alternativa, in questa schermata è anche possibile modificare la password per l’utente del database già esistente.

Creare un nuovo utente MySQL

Creare un nuovo utente MySQL

Quindi scorrete verso il basso e aggiungete il vostro nuovo utente al database. La schermata successiva chiederà quali privilegi si desidera assegnare: selezionate “Tutti i privilegi”.

Aggiungere un utente ad un database in cPanel

Aggiungere un utente ad un database in cPanel

Quindi prendete le nuove credenziali e aggiornate il vostro file wp-config.php. Dovrete aggiornare i valori di DB_USER e DB_PASSWORD. È anche possibile eseguire nuovamente il file di prova che abbiamo utilizzato in precedenza. Questo dovrebbe risolvere il vostro problema di credenziali. In caso contrario, potrebbe anche essere che abbiate ancora il nome host sbagliato (DB_HOST). Alcuni host usano valori diversi, e qui c’è un elenco di alcuni valori DB host comuni. In genere questo sarà semplicemente localhost. Ma, se non ne siete certi, potete sempre contattare il vostro provider di hosting o controllare la documentazione. Alcuni potrebbero anche utilizzare 127.0.0.1 invece di localhost.

Se avete seguito tutte queste indicazioni e ricevete ancora il messaggio di errore nello stabilire una connessione al database, allora continuate la lettura dei passaggi successivi.

Controllare le Credenziali del Database con Kinsta

Se siete utenti di Kinsta, il processo di verifica della corrispondenza delle vostre credenziali contenute nel file wp-config.php e quelle del server è molto più semplice! Tutto quello che dovete fare è cliccare sulla sezione informazioni del vostro sito e, verso la parte inferiore, vedrete il nome del database, il nome utente del database e la password del database. Per impostazione predefinita, Kinsta utilizza localhost per DB_HOST.

Credenziali di accesso al database di Kinsta

Credenziali di accesso al database di Kinsta

Quindi prendete quelle nuove credenziali e aggiornate il vostro file wp-config.php. Dovrete aggiornare i valori di DB_USER e DB_PASSWORD. Questo dovrebbe quindi risolvere il vostro problema di credenziali. Se avete bisogno di resettare queste credenziali, vi basta contattare il nostro team di supporto. Se avete seguito le indicazioni qui sopra, e ricevete ancora il messaggio di errore nello stabilire una connessione al database, continuate seguendo la procedura riportata di seguito.

2. Riparare un Database Danneggiato

In alcuni casi, potrebbe essere che il database sia danneggiato. Questo può accadere occasionalmente (anche se non succede molto spesso) perché nel tempo centinaia di tabelle vengono costantemente aggiunte e rimosse da nuovi temi e plugin. Se si tenta di accedere alla dashboard del proprio sito WordPress e viene visualizzato il seguente errore, significa che il database è danneggiato: “Una o più tabelle del database non sono disponibili. Il database potrebbe avere bisogno di essere riparato.” (“One or more database tables are unavailable. The database may need to be repaired”). È importante notare che si potrebbe vedere questo errore solo sul back-end, mentre sul front-end si visualizzerà l’nello stabilire una connessione al database.

In realtà WordPress dispone di una modalità di riparazione del database. Per avviarla, basta aggiungere quanto segue alla fine del vostro file wp-config.php.

define('WP_ALLOW_REPAIR', true);
Modalità repair in WordPress

Modalità repair in WordPress

Quindi andate al seguente indirizzo sul vostro sito WordPress: https://yourdomain.com/wp-admin/maint/repair.php . Avrete quindi la possibilità di riparare il database oppure di riparare e ottimizzare. Dato che probabilmente in questo momento state cercando di risolvere un’interruzione del vostro sito, vi consigliamo di utilizzare l’opzione di riparazione del database perché è più veloce.

Riparare il database di WordPress

Riparare il database di WordPress

Dopo aver eseguito la riparazione del database come visto qui sopra, assicuratevi di rimuovere la riga di codice che avete aggiunto al file wp-config.php, altrimenti chiunque potrebbe eseguire la stessa riparazione. Se state utilizzando cPanel potete anche eseguire una riparazione dalla schermata dei database MySQL.

Riparare il database in cPanel

Riparare il database in cPanel

Oppure potete eseguire una riparazione da phpMyAdmin. Basta accedere a phpMyAdmin, fare clic sul vostro database e selezionare tutte le tabelle. Quindi dal menu a discesa fare clic su “Ripara tabella”. In pratica, si tratta semplicemente di eseguire il comando REPAIR TABLE.

Riparare le tabelle in in phpMyAdmin

Riparare le tabelle in in phpMyAdmin

E infine, l’altra opzione sarebbe quella di eseguire la ripristino utilizzando WP-CLI con il seguente comando:

wp db repair

Si legga la documentazione sull’utilizzo di questo comando nelle risorse per sviluppatori di WordPress.

Se volete ottimizzare il vostro database, disponiamo di ottimi tutorial su come ottimizzare le revisioni di WordPress per migliorare le prestazioni, e come convertire le vostre tabelle MyISAM in InnoDB. Se i problemi persistono nel tuo sito, procedi con il passaggio successivo alla risoluzione dei problemi.

Lettura consigliata: Come Correggere l’errore “MySQL Server Has Gone Away” in WordPress.

3. Ripristinare i File Corrotti

Un altro possibile motivo per cui potreste visualizzare il messaggio di errore durante la creazione di una connessione al database è che i vostri file sono danneggiati. Che questo sia dovuto ad un problema nel trasferimento di file tramite FTP, ad un hacker che ha avuto accesso al vostro sito, oppure ad un problema con il vostro host, potete risolvere rapidamente. Tuttavia, vi consigliamo ancora una volta di fare un backup del vostro sito prima di procedere.

In pratica, state per sostituire la versione del core di WordPress. Non state toccando i vostri plugin, i temi o i media, ma solo l’installazione stessa di WordPress. Per farlo, dovrete scaricare una nuova copia di WordPress da WordPress.org.

Scaricare WordPress

Scaricare WordPress

Decomprimete questo file sul vostro computer. All’interno, dovrete eliminare la cartella wp-content, nonché il file wp-config-sample.php.

Cancellare la cartella wp-content

Cancellare la cartella wp-content

Quindi caricate sul sito i file rimanenti tramite SFTP, sovrascrivendo i file esistenti. Questo sostituirà tutti i file danneggiati e vi assicurerà di averne una versione nuova pulita. Consigliamo di cancellare la cache del browser al termine dell’operazione. Quindi controllate il vostro sito WordPress per vedere se l’errore è ancora presente.

4. Problemi con il Server del Database

Se niente di quanto abbiamo descritto riesce a risolvere il problema, vi consigliamo vivamente di contattare il vostro provider di hosting, in quanto potrebbe trattarsi di un problema del server del vostro database. Ad esempio, il server potrebbe generare l’errore nel caso in cui ci siano troppe connessioni simultanee al database. Questo perché molti host impongono dei limiti sui loro server sul numero di connessioni contemporanee consentite. L’utilizzo di un plugin di caching può aiutare a ridurre al minimo le interazioni del database sul vostro sito. Se siete clienti di Kinsta, non è necessario utilizzare i plugin di caching, perché è disponibile una cache rapida a livello di server.

Questo problema può capitare spesso sugli host condivisi in quanto qualcun altro potrebbe teoricamente influenzare il vostro sito. Questo perché gli host condivisi mettono in condivisione le stesse risorse sui server. Questo è un altro motivo per cui consigliamo sempre di utilizzare un host WordPress gestito ad alte prestazioni, in modo tale che non ci sia sovraffollamento. Questo anche perché l’ambiente è in genere ottimizzato per gestire grandi volumi di traffico, specificamente per i siti WordPress.

Il team di supporto esperto di Kinsta è sempre a portata di click nella parte in basso a destra del cruscotto e disponibile 24/7 se avete bisogno di aiuto. E non dimenticare che abbiamo dei rappresentanti per aiutarvi sia in inglese che in spagnolo.

Contattare il supporto di Kinsta

Contattare il supporto di Kinsta

5. Ripristinare il Backup Più Recente

E, ultimo ma non meno importante, è sempre possibile ricorrere a un backup, se necessario. In alcuni casi, questo potrebbe essere il modo più rapido per risolvere il problema nel caso in cui non siete preoccupati di perdere dati acquisiti da quando è stato effettuato l’ultimo backup. Molti host hanno una propria procedura di ripristino dei backup. Ricordate che potrebbe essere necessario ripristinare sia il database che i file.

Se siete utenti di Kinsta, potete facilmente ripristinare un backup del vostro sito nella sezione Backup. Basta scegliere l’ora in cui è stato preso il backup e fare clic su “Ripristina in”. Potrete quindi selezionare Staging o Produzione.

Ripristinare un backup di WordPress

Ripristinare un backup di WordPress

Vi verrà quindi chiesto di confermare il ripristino. Basterà inserire il nome del sito e fare clic su “OK”. La procedura crea anche un backup al momento del ripristino in modo da poter annullare l’operazione, se necessario.

Conferma del ripristino di WordPress

Conferma del ripristino di WordPress

Riepilogo

Come potete vedere, ci sono diversi modi per risolvere l’errore nello stabilire una connessione al database in WordPress. Le cause più comuni dipendono da credenziali non valide nel file wp-config.php. Il miglior modo di iniziare è controllare per essere certi che siano corrette. L’ultima cosa che potreste desiderare per un sito web è di avere tempi di inattività. Quindi speriamo davvero che uno dei passaggi descritti vi possa aiutare a ripristinare il vostro sito. Ricordate che potete sempre ripristinare il vostro sito da un backup.

Vi siete imbattuti nel messaggio di errore nella creazione di una connessione al database sul vostro sito? Siete riusciti a risolverlo? Fatecelo sapere di seguito nei commenti.

12
Condivisioni