E ‘uno dei peggiori timori di chi possiede un sito web fatto con WordPress. Digiti l’URL del tuo sito web… ma quello che appare non è la tua home page, ma una schermata vuota. Non importa quale link interno del sito si tenta di connettersi, manca tutto, tranne le parole “minacciose”:
“Errore nello stabilire una connessione al database”.
Più a lungo il tuo sito è down, più traffico si perde. E questo potrebbe significare iscritti persi, perdita di clienti, e infine perdita di entrate.
Ma cosa significa esattamente l’errore visualizzato? E ancora più importante, come risolvere il problema e far sì che il tuo sito web torni alla normalità prima possibile?
In questo articolo, spiegherò esattamente cosa significa il messaggio di errore e quale potrebbe essere la causa di esso. Successivamente ti guiderò passo passo alla risoluzione del problema.
(Se vuoi saltare la parte in cui faccio l’analisi del problema e passare direttamente alla soluzione ti basta scorrere la pagina più in basso).
Cosa significa “Errore nello stabilire una connessione al database”?
In primo luogo, diamo uno sguardo a come funziona WordPress affinché il sito venga visualizzato e sarà chiaro il motivo per cui questo errore risulta essere così devastante.
Il software WordPress è scritto con PHP e MySQL. Perché due linguaggi? Tutte le informazioni del sito sono memorizzate in un database MySQL e WordPress utilizza il linguaggio PHP per archiviare e recuperare le informazioni dal database.
Generalmente ogni volta che viene caricata una pagina del tuo sito web, essa viene ricostruita all’istante. Il codice PHP viene utilizzato per accedere al database MySQL e recuperare ogni bit relativo alle informazioni necessarie per creare la pagina. C’è una query (richiesta) PHP per accedere al titolo del post, un’altra per afferrare il nome dell’autore, un’altra per recuperare la data di pubblicazione, e così via…
Tornando al messaggio di errore “Errore nello stabilire una connessione al database”, significa che per qualche motivo il codice PHP non è in grado di connettersi al database MySQL per recuperare le informazioni necessarie appunto per costruire quella determinata pagina.
Ecco perché questo errore è l’unica cosa che vedi in una pagina praticamente vuota. Se non è possibile connettersi al database, non c’è modo di sapere cosa visualizzare; nessuna informazione sul tuo sito web è disponibile.
Quali sono le cause di questo errore?
Mentre il significato del messaggio di errore è chiaro, le ragioni per cui accade spesso non lo sono.
Ci sono molte ragioni per cui il tuo sito potrebbe avere problemi di connessione al database, ma in genere si dividono in tre tipologie:
- Le credenziali di accesso al database sono sbagliate. Il database utilizza credenziali di accesso differenti (username e password). Se recentemente sono state modificate queste credenziali, il tuo sito non sarà in grado di accedere al database con le vecchie credenziali.
- Il database è danneggiato. Varie cause possono danneggiare il database di WordPress: l’installazione di plugin scadenti, fulmini al server (non sto scherzando, succede anche se raramente).
- Il server che ospita il database è down. Spesso potrebbe essere un problema che non dipende da te, ma da un errore proveniente dall’hosting che gestisce il server. A volte l’errore può essere causato anche da un traffico troppo elevato per quel determinato server che non è in grado di gestirlo.
Quindi, con tutte queste variabili, come si può circoscrivere il problema e risolverlo?
Risoluzione del problema “Errore nello stabilire una connessione al database”
1. Determinare dove si verifica l’errore
Riesci a vedere il tuo sito web normalmente, ma ti da errore quando si tenta di accedere al pannello di amministrazione wp-admin? Oppure il tuo sito è down, ma stai ricevendo un errore leggermente differente quando si tenta di accedere: “Una o più tabelle del database non sono disponibili, potrebbe essere necessario ripararlo”.
Questi sono segni di danneggiamento del database.
WordPress ha una soluzione integrata per tentare di ripristinare il database, ma dovrai prima attivare questa funzione. Per far ciò, è necessario accedere al file wp-config.php, il quale contiene le impostazioni per l’installazione e la configurazione di WordPress.
Puoi trovare il wp-config.php nella directory principale dove risiedono tutti i file di WordPress. È possibile accederci tramite il pannello di controllo del tuo servizio di hosting che, nel caso in cui il tuo hosting utilizzi cPanel, basta selezionare “File Manager” e navigare poi verso la cartella in cui è installato WordPress.
Una volta aperto il file wp-config.php con un editor (anche di testo semplice), dovrai aggiungere la seguente riga di codice al fondo al documento:
define( 'WP_ALLOW_REPAIR', true );
Questa linea vi permetterà di ottimizzare e riparare il database navigando su www.iltuositoweb.com/wp-admin/maint/repair.php (sostituire “iltuositoweb.com” con l’URL reale del tuo sito web).
Dovreste vedere la schermata qui sopra con due opzioni: una per riparare e l’altra per riparare e ottimizzare il database. Scegli quello che preferisci, riparazione con ottimizzazione richiederà solo più tempo.
Notare che questa pagina di riparazione del database non è sicura; chiunque può accedere a quell’URL senza dover effettuare il login. Una volta che hai finito di riparare il database, assicurati di rimuovere la riga di codice aggiunto al file wp-config.php. Questo disabiliterà l’accesso alla pagina di riparazione e impedire a chiunque altro di fare scherzi con il database.
Esistono altri metodi per riparare e ottimizzare il database, tipo attraverso il PHPMyAdmin attraverso cPanel, di cui parlerò in un altro articolo.
Tieni il file wp-config.php aperto per ora, fino a quando non sarete certi che l’errore venga risolto e il tuo sito web torni a funzionare di nuovo. Se dopo aver effettuato la procedura di cui sopra, l’errore si presentasse ancora, sarà necessario agire sullo stesso file per il passo successivo. In questo caso procedete al seguente secondo step.
2. Controllare le impostazioni di accesso al database nel file wp-config.php
Se il primo step non ha risolto il problema, il successivo passo da fare è quello di dare un’occhiata alle impostazioni del database nel file wp-config.php.
Vuoi sapere come mai le credenziali di accesso al database potrebbero smettere all’improvviso di funzionare? Un eventuale cambio di hosting, la mancata corrispondenza fra le nuove reali credenziali di accesso al database e quelle impostate nel file wp-config.php possono provocare l’errore. In questo caso sarà necessario aggiornare quelle presenti nel file wp-config.php.
Nel file wp-config.php troverete le credenziali di accesso al database, probabilmente nella parte superiore del documento. Dovrei trovare una cosa del genere:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
Come puoi notare, ci sono quattro blocchi di informazioni di cui WordPress necessita per accedere al database:
- Il nome del database (“DB_NAME”)
- Lo username per il login (“DB_USER”)
- La password per il login (“DB_PASSWORD”)
- L’host del database (“DB_HOST”)
Se uno di questi valori non è corretto, WordPress non sarà in grado di connettersi al database.
Un modo per controllare il database al di fuori di WordPress è quello di utilizzare PHPMyAdmin, uno strumento per l’accesso e la modifica dei database MySQL. PhpMyAdmin è incluso con la maggior parte dei piani hosting, lo trovi nella dashboard di cPanel.
AVVISO: Presta molta attenzione nell’usare PHPMyAdmin, dal momento che avrai accesso diretto al database del sito!
Una volta effettuato l’accesso a phpMyAdmin, verrà visualizzato nella colonna di sinistra un elenco dei database sul server. Clicca su quello corrispondente al nome nel file wp-config.php (il valore dopo DB_NAME, dove dice “database_name_here” nel codice di esempio sopra riportato).
(Non vedi alcun database? Contatta il tuo servizio di hosting, probabilmente l’intero problema risiede nel server.)
Dopo aver fatto clic sul nome del database, vedrai la schermata principale popolata con i nomi delle tabelle nel database. Per assicurarsi che questo sia il database corretto, è possibile trovare la tabella denominata “wp_options” e cliccare sull’opzione “Browse” accanto ad essa. Qui dovresti vedere il nome del tuo sito web, l’URL e le altre impostazioni generali. Ora puoi scoprire se il nome del database impostato nel file wp-config.php è corretto. In caso contrario procedete con la correzione nel file wp-config.php.
Ora controlliamo il nome utente e la password. Ci sono alcuni modi per far questo, alcuni più contorti di altri. Ti riporto due opzioni:
- È possibile creare un semplice file .php per verificare se sei in grado di connetterti al database con le credenziali nel file wp-config, oppure…
- Puoi creare un nuovo utente e password, e aggiornare il file wp-config.php con le nuove info. Dovrai farlo solo se l’opzione 1 fallisce, altrimenti puoi saltare questo passaggio.
Opzione 1: testa le tue credenziali esistenti.
Crea un file nella directory di WordPress con un nome del genere testconnection.php (il nome non importa, quello che conta è l’estensione .php). Incollare il seguente codice all’interno del file:
<!--?php
$test Connection = mysql_connect('localhost', 'root', 'password');
if (!$testConnection) {
die('Error: ' . mysql_error());
}
echo 'Database connection working!';
mysql_close($testConnection);
?>
Una volta creato il file, basta poi recarsi alla URL del file nel browser (ad esempio www.iltuositoweb.com/testconnection.php). Vedrete o un messaggio di connessione, o un errore con maggiori dettagli.
Se nome utente e password non funzionano, potrai semplicemente creare delle nuove credenziali.
Opzione 2: Crea un nuovo utente per il database con relativa password.
Possiamo fare questo utilizzando uno strumento differente disponibile in cPanel e denominato “MySQL® Databases”. Cliccare su questa voce e poi scorrere fino a trovare “MySQL Users”. Aggiungi un nuovo utente, scegli uno user e una password robusta e crea il nuovo utente. Ora scorri alla voce “Add User To Database”, scegli il nuovo utente e associalo al database WordPress. Aggiorna il file wp-config.php con il nuovo nome utente e password.
Ora il nome del database, il nome utente e la password sono tutti corretti. Rimane invariato il “DB_HOST”.
Nella maggior parte dei casi questo valore è ‘localhost’, ma dipende dalle impostazioni del proprio host. Sul sito ufficiale di WordPress è presente una lista di host più diffusi con i relativi valori “DB_HOST”. Se il tuo host non è in elenco, è possibile contattare la società di hosting per chiedere quale valore da utilizzare.
3. L’errore è ancora presente? Controlla con il tuo fornitore di hosting
Se hai seguito tutte le procedure sopra descritte e il tuo sito è ancora down, potrebbe essere un problema del server. Contatta il supporto del tuo web hosting e fornisci loro tutti i dettagli sull’errore e le azioni che hai già intrapreso nel tentativo di risolvere il problema, sicuramente saranno in grado di aiutarti a determinare la causa dell’errore.
Condividi la tua esperienza!
Sei incappato anche tu in questo problema con il tuo sito WordPress? Come hai risolto il problema? Hai trovato la causa del problema? Condividi la tua esperienza e suggerimenti in merito attraverso i commenti!
Lascia un commento