Se il tuo sito mostra il messaggio "Error establishing a database connection" (nelle installazioni in italiano: "Errore nello stabilire una connessione al database"), WordPress è in funzione ma non riesce a comunicare con il database in cui sono conservati i tuoi contenuti.
Ogni pagina, articolo, prodotto, ordine, utente e impostazione di un sito WordPress si trova in quel database. Quando WordPress non riesce a raggiungerlo non ha niente da mostrare, quindi di solito l’intero sito si ferma su quell’unica riga di testo. Normalmente anche la bacheca ne risente.
Il messaggio sembra grave e per un sito aziendale lo è: i visitatori non vedono niente di utile finché non viene risolto. Nella maggior parte dei casi, però, non significa che i tuoi dati siano stati cancellati. Di solito significa che il database è temporaneamente irraggiungibile o sovraccarico, oppure che WordPress sta usando dati sbagliati per collegarsi.
Questa guida spiega cosa significa il messaggio, le cause più comuni, cosa puoi controllare in sicurezza e quando è meglio chiedere supporto tecnico.
Cosa significa davvero questo errore?
Un sito WordPress ha due parti principali:
- i file, come WordPress stesso, i plugin, i temi e le immagini caricate
- il database, che conserva contenuti e impostazioni
Quando qualcuno apre una pagina, WordPress legge un file di configurazione chiamato wp-config.php per sapere dove si trova il database e come accedervi. Poi si collega al server del database e chiede il contenuto della pagina.
L’errore compare quando quella connessione non riesce. WordPress non sa esattamente perché, quindi mostra lo stesso messaggio generico sia che il server del database sia spento, sia che la password sia sbagliata, sia che il server sia semplicemente troppo occupato per rispondere.
Per questo il messaggio da solo non può dirti cosa ha causato il problema. Ti dice dove si trova il problema, non di che problema si tratta.
I miei contenuti sono persi?
Di solito no.
Nella maggior parte dei casi i dati sono ancora lì. Semplicemente, in questo momento WordPress non riesce a raggiungerli. Una volta ripristinata la connessione, il sito di norma ricompare esattamente com’era.
Ci sono eccezioni, per esempio un server guasto, un database eliminato o una corruzione grave. Sono casi meno comuni, e sono un motivo in più per evitare azioni affrettate come ripristinare un vecchio backup o reinstallare WordPress prima di conoscere la causa.
Quali sono le cause più comuni?
Il server del database è spento o sovraccarico
Nella maggior parte dei piani di hosting, il database gira su un server gestito dal provider di hosting. Se quel server si sta riavviando, è in manutenzione o è sovraccarico, WordPress non riesce a collegarsi.
Segnali che vanno in questa direzione:
- l’errore è comparso all’improvviso, senza che nessuno abbia modificato il sito
- va e viene, soprattutto nei momenti di maggiore traffico
- altri siti sullo stesso account di hosting mostrano lo stesso errore
- il provider di hosting segnala un incidente o una manutenzione
Anche un picco di traffico, un bot aggressivo, un’importazione pesante o un plugin che si comporta male possono sovraccaricare il database, per cui alcune richieste falliscono e altre vanno a buon fine.
I dati di connessione in wp-config.php sono sbagliati
wp-config.php contiene quattro dati di cui WordPress ha bisogno per collegarsi:
- il nome del database
- l’utente del database
- la password di quell’utente
- l’host del database, cioè l’indirizzo del server del database
Se uno di questi è sbagliato, la connessione non riesce. Succede spesso:
- dopo una migrazione verso un nuovo provider di hosting o un nuovo server
- dopo che la password del database è stata cambiata nel pannello dell’hosting
- dopo che qualcuno ha ripristinato una vecchia copia di
wp-config.php - dopo che il provider di hosting ha spostato il database su un altro server
- dopo che l’utente del database è stato eliminato o ha perso i permessi
Se l’errore è comparso subito dopo uno di questi eventi, questa è la causa più probabile.
Le tabelle del database sono danneggiate
Le tabelle del database possono corrompersi, per esempio dopo un crash del server, un disco pieno o un’operazione interrotta. In questo caso WordPress può riuscire a collegarsi ma non a leggere ciò che gli serve.
A volte il sito pubblico mostra l’errore di connessione mentre la bacheca mostra un messaggio diverso, che indica che il database deve essere riparato.
L’account di hosting ha raggiunto un limite
I piani di hosting hanno spesso limiti su:
- il numero di connessioni simultanee al database
- lo spazio su disco, usato anche dal database
- la dimensione del database
- l’uso di CPU o memoria
Quando si raggiunge un limite, il database può rifiutare nuove connessioni o smettere di funzionare correttamente. Di solito il provider di hosting può confermarlo in fretta.
L’account è stato sospeso
Se l’account di hosting è stato sospeso, per esempio per una fattura non pagata, una violazione delle condizioni o un problema di sicurezza, il database può essere disattivato mentre i file restano online. Controlla se hai ricevuto email dal tuo provider di hosting.
Cosa dovresti controllare per primo?
Non serve aprire alcun file per raccogliere informazioni utili.
Verifica se l’errore è costante o intermittente
Ricarica il sito alcune volte nell’arco di qualche minuto, preferibilmente in una finestra privata o in incognito.
- Se l’errore c’è sempre, è più probabile un problema di configurazione o un database completamente fermo.
- Se va e viene, sono più probabili un sovraccarico o i limiti dell’hosting.
Verifica se è cambiato qualcosa
Pensa a cosa è successo poco prima che comparisse l’errore:
- Il sito è stato migrato o spostato su un nuovo server?
- Qualcuno ha cambiato una password nel pannello dell’hosting?
- È stato ripristinato un backup?
- Il provider di hosting aveva annunciato una manutenzione?
- Era in corso una grossa importazione, una newsletter o una promozione?
- Qualcuno ha installato un nuovo plugin?
Una nota come "l’errore è iniziato la mattina dopo che abbiamo cambiato la password del database" può far risparmiare molto tempo di indagine.
Controlla gli altri siti sullo stesso account
Se ospiti più siti presso lo stesso provider, aprili. Se mostrano tutti lo stesso errore, il problema è quasi certamente lato hosting, non nella tua installazione WordPress.
Controlla lo stato e le email del provider di hosting
Cerca:
- una pagina di stato o un avviso di incidente del provider di hosting
- email su manutenzioni, limiti o sospensioni
- avvisi sullo spazio su disco nel pannello dell’hosting
Cosa puoi provare in sicurezza?
Contatta il provider di hosting
Per questo errore in particolare, il provider di hosting è spesso il miglior primo contatto. Di solito può confermarti in poco tempo se:
- il server del database è in funzione
- il database e il suo utente esistono ancora
- l’account ha raggiunto un limite
- il valore dell’host del database da usare è corretto
- c’è stato un incidente o una manutenzione
Chiedi in modo chiaro: "Il server del database del mio account è in funzione, e nome del database, utente e host sono ancora gli stessi?"
Contatta chi ha lavorato per ultimo sul sito
Se uno sviluppatore, un’agenzia o un collega ha di recente migrato il sito, cambiato impostazioni dell’hosting o ripristinato un backup, chiedigli cosa ha modificato. Potrebbe sapere subito quale valore va corretto.
Aspetta qualche minuto se l’errore è intermittente
Se il provider di hosting conferma un sovraccarico temporaneo o una manutenzione, il sito potrebbe tornare da solo. Resta comunque una domanda a cui vale la pena rispondere in seguito: perché il database era sovraccarico, e se potrebbe succedere di nuovo in un momento importante per la tua attività.
Cosa dovresti evitare?
Quando il sito è giù, viene la tentazione di provare in fretta diverse soluzioni. Evita di:
- reinstallare WordPress
- ripristinare un backup prima di conoscere la causa, perché potrebbe sovrascrivere ordini, invii di moduli o contenuti recenti
- creare un nuovo database vuoto e collegarci WordPress, perché il sito sembrerà un’installazione nuova
- eliminare o ricreare l’utente del database senza annotare i vecchi dati
- modificare
wp-config.phpsenza prima salvare una copia dell’originale - copiare codice o impostazioni trovati a caso nei forum
- eseguire ripetutamente strumenti di riparazione senza capire cosa fanno
Se dopo una modifica vedi la schermata di installazione di WordPress invece del tuo sito, fermati. Di solito significa che WordPress è collegato a un database vuoto o diverso, non che i tuoi contenuti siano spariti. Non completare l’installazione.
Quando dovresti chiedere supporto tecnico?
Chiedi aiuto quando:
- l’errore persiste e il provider di hosting dice che dalla sua parte è tutto a posto
- l’errore è comparso dopo una migrazione o un ripristino
- il sito gestisce ordini, prenotazioni, abbonamenti o dati dei clienti
- l’errore continua a ripresentarsi nei periodi di maggiore traffico
- la bacheca dice che il database deve essere riparato
- non te la senti di modificare
wp-config.php - non sei sicuro che un backup recente sia affidabile
- sospetti che il sito possa essere stato compromesso
Non devi prima individuare la causa da solo. Una richiesta utile può semplicemente descrivere cosa vedi, quando è iniziato e cosa è cambiato.
Quali informazioni dovresti raccogliere?
Dettagli utili:
- l’URL del sito
- uno screenshot dell’errore
- quando è iniziato il problema
- se l’errore è costante o intermittente
- eventuali modifiche recenti, come una migrazione, un cambio di password o un ripristino
- il nome del provider di hosting
- eventuali email o risposte ai ticket del provider di hosting
- se sono coinvolti altri siti sullo stesso account
- se è disponibile un backup recente
Non inviare password del database o credenziali dell’hosting con una normale email. D4Hub può dirti quali accessi servono e come condividerli in sicurezza.
Come può aiutarti D4Hub
L’obiettivo non è solo far sparire l’errore, ma capire perché la connessione non è riuscita e ridurre la probabilità che succeda di nuovo.
A seconda della situazione, D4Hub può aiutarti a:
- controllare i dati di connessione al database usati da WordPress
- coordinarsi con il provider di hosting per verificare lo stato del server del database
- correggere problemi di configurazione dopo una migrazione o un cambio di password
- controllare e riparare in sicurezza le tabelle del database danneggiate
- indagare su sovraccarichi, query lente o plugin che mettono sotto pressione il database
- rivedere i limiti dell’hosting e consigliare una configurazione più adatta
- valutare se serve ripristinare un backup e quali dati potrebbe sovrascrivere
- testare login, moduli, checkout e altre funzioni chiave una volta che il sito è tornato online
Puoi chiedere supporto in qualsiasi fase, che tu abbia appena visto l’errore, abbia già parlato con il provider di hosting o abbia provato una soluzione che non ha funzionato.
Apri un ticket di supportoPer chi vuole fare da sé: controllare la connessione al database
I controlli seguenti sono pensati per chi ha dimestichezza con SFTP, SSH, WP-CLI e il pannello dell’hosting.
Prima di cambiare qualsiasi cosa, scarica una copia di wp-config.php e, se possibile, fai un backup del database. Non incollare mai wp-config.php, password o log completi in forum pubblici o chat di assistenza.
Controlla i dati del database in wp-config.php
Apri wp-config.php, di solito nella cartella principale di WordPress, e cerca queste righe:
define( 'DB_NAME', 'database_name' );
define( 'DB_USER', 'database_user' );
define( 'DB_PASSWORD', 'database_password' );
define( 'DB_HOST', 'localhost' );Confronta ogni valore con quello che il pannello dell’hosting mostra per il database e il suo utente. Fai attenzione a:
- i prefissi che alcuni hosting aggiungono automaticamente ai nomi di database e utenti
DB_HOST, che non è semprelocalhost: alcuni provider usano un hostname separato, una porta comelocalhost:3306o il percorso di un socket- password che contengono un apice singolo o una barra rovesciata, che vanno precedute da un carattere di escape dentro la stringa PHP
Se cambi un valore, cambia una cosa alla volta e ricarica il sito dopo ogni modifica.
Con WP-CLI puoi leggere i valori senza aprire il file:
wp config get DB_NAME
wp config get DB_USER
wp config get DB_HOSTProva la connessione con il client mysql
Se hai accesso SSH, prova a collegarti con gli stessi dati che usa WordPress:
mysql -h localhost -u database_user -p database_nameSostituisci localhost, database_user e database_name con i tuoi valori. L’opzione -p fa sì che il client ti chieda la password invece di salvarla nella cronologia della shell.
Se la connessione funziona, elenca le tabelle:
SHOW TABLES;Poi digita exit per uscire.
Come leggere il risultato:
- "Access denied": utente, password o permessi sono sbagliati
- "Unknown database": il nome del database è sbagliato o il database non esiste più
- "Can't connect" o un timeout: il valore dell’host è sbagliato o il server del database è spento
- la connessione funziona ma non ci sono tabelle: WordPress punta a un database vuoto
Controlla le tabelle con WP-CLI
Se la connessione funziona, WP-CLI può controllare le tabelle usando i dati di wp-config.php:
wp db checkL’output elenca ogni tabella con il suo stato. Tabelle segnalate come corrotte o danneggiate indicano un database rovinato più che un problema di connessione.
WP-CLI offre anche wp db repair. Usalo solo dopo aver fatto un backup del database e, se il database è grande o il sito gestisce ordini, preferibilmente coinvolgendo il provider di hosting o uno sviluppatore.
Usa la pagina di riparazione di WordPress solo come ultimo passo
WordPress include uno strumento di riparazione integrato. Per attivarlo, aggiungi questa riga a wp-config.php, prima della riga che dice "That's all, stop editing":
define( 'WP_ALLOW_REPAIR', true );Poi apri:
https://example.com/wp-admin/maint/repair.phpImportante: finché questa riga è attiva, la pagina di riparazione può essere aperta da chiunque, senza login. Rimuovi la riga da wp-config.php appena la riparazione è completata e verifica che la pagina non funzioni più.
Fai un backup del database prima di avviare la riparazione e non usarla se non sei sicuro che il problema sia la corruzione delle tabelle.
Controlla i log degli errori dell’hosting
La maggior parte dei pannelli di hosting dà accesso ai log degli errori PHP o del server. Cerca errori registrati nel momento in cui il sito ha smesso di funzionare, come connessioni rifiutate, troppe connessioni o disco pieno.
I log possono contenere informazioni sensibili. Rileggili prima di condividerli e condividili solo tramite un canale sicuro.
D4Hub può aiutarti a interpretare i risultati di questi controlli e a decidere il prossimo passo più sicuro.
Domande frequenti
Questo errore significa che il mio sito è stato violato?
Di solito no. Le cause più comuni sono problemi dell’hosting o dati di connessione sbagliati. Una compromissione è possibile, per esempio se qualcuno ha modificato wp-config.php o la password del database, ma è solo una delle possibilità. Se noti anche utenti sconosciuti, redirect strani o file inattesi, segnalalo quando chiedi aiuto.
Perché l’errore compare solo a volte?
Un errore intermittente spesso significa che il server del database è sovraccarico o che l’account sta raggiungendo un limite di connessioni. Picchi di traffico, bot, plugin pesanti o attività pianificate possono contribuire. Di solito il provider di hosting può vedere quando è stato raggiunto il limite.
Ho cambiato la password del database e ora il sito non funziona. Cosa è successo?
WordPress ha ancora la vecchia password in wp-config.php. La nuova password va scritta anche nella riga DB_PASSWORD. Se non te la senti di modificare il file, il tuo provider di hosting o D4Hub possono aiutarti.
Dovrei ripristinare un backup?
Non come primo passo. Se la causa è un’impostazione sbagliata o un problema del server del database, un ripristino non aiuta e potrebbe sovrascrivere ordini, messaggi o contenuti più recenti. Ripristinare ha senso solo dopo aver capito la causa e verificato il backup.
La bacheca dice che il database deve essere riparato. È sicuro farlo?
Lo strumento di riparazione integrato è pensato proprio per questo, ma fai prima un backup del database e ricordati di rimuovere poi la riga WP_ALLOW_REPAIR. Se il sito gestisce ordini o dati dei clienti, valuta di chiedere supporto prima di avviarlo.
Perché ora il mio sito mostra la schermata di installazione di WordPress?
Di solito significa che WordPress è collegato a un database vuoto o diverso da quello originale, oppure che il prefisso delle tabelle in wp-config.php non corrisponde alle tabelle esistenti. Non completare l’installazione. Controlla il nome del database e il prefisso delle tabelle, oppure chiedi aiuto.
D4Hub può aiutarmi se il provider di hosting dice che è tutto a posto?
Sì. Condividi quello che ti ha detto il provider di hosting e cosa hai già provato. D4Hub può controllare la configurazione, il database e il sito stesso per trovare il punto in cui la connessione non riesce.