Menu
Bug e Vulnerabilità

Come risolvere l’errore di connessione al database in WordPress

Gianluca Gentile · · 8 min di lettura

Come risolvere l’errore di connessione al database in WordPress

Il messaggio “Errore nello stabilire una connessione al database” è uno degli errori più temuti in WordPress. Quando appare, il sito diventa completamente inaccessibile — nessuna pagina, nessun articolo, nessun pannello admin. Il sito è di fatto offline. La buona notizia è che nella maggior parte dei casi il problema ha cause identificabili e risolvibili. In questa guida analizzo tutte le possibili cause dell’errore di connessione al database WordPress e ti mostro come risolvere ciascuna, passo dopo passo.

Cosa significa questo errore

WordPress è un CMS dinamico che dipende da un database MySQL (o MariaDB) per funzionare. Ogni pagina, articolo, commento, impostazione e contenuto del sito è memorizzato nel database. Quando un visitatore richiede una pagina, WordPress si connette al database, recupera i dati necessari e genera la pagina HTML. Se questa connessione fallisce, WordPress non può fare nulla e mostra il messaggio di errore.

L’errore può comparire in diverse situazioni: su tutto il sito, solo nel pannello admin, oppure in modo intermittente (funziona a volte, a volte no). Ognuna di queste varianti suggerisce cause diverse, come vedremo.

Verificare le credenziali del database in wp-config.php

La causa più comune è un errore nelle credenziali di connessione. WordPress salva i dati di accesso al database nel file wp-config.php, che si trova nella cartella principale dell’installazione. Collegati via FTP o dal file manager del pannello hosting e apri il file. Cerca queste quattro righe:

  • DB_NAME — il nome del database
  • DB_USER — il nome utente del database
  • DB_PASSWORD — la password del database
  • DB_HOST — l’indirizzo del server del database (spesso localhost)

Verifica che ogni valore sia corretto confrontandolo con le informazioni nel pannello del tuo hosting. Le credenziali possono diventare errate dopo una migrazione del sito, un cambio di password nel pannello hosting, o una modifica accidentale del file. Un errore frequente è uno spazio aggiuntivo prima o dopo il valore, o un carattere speciale nella password che viene interpretato male. Se la password contiene caratteri come ‘ ” $, assicurati che siano correttamente preceduti da un backslash di escape.

Verificare che il server database sia attivo

Se le credenziali sono corrette, il problema potrebbe essere che il server MySQL non è in esecuzione. Questo accade più spesso su VPS e server dedicati dove MySQL va gestito manualmente, ma può succedere anche su hosting condivisi durante problemi tecnici del provider.

Per verificare, prova ad accedere a phpMyAdmin dal pannello hosting. Se anche phpMyAdmin non riesce a connettersi, il problema è confermato: il server MySQL è down. Su un VPS puoi verificare e riavviare il servizio via SSH:

sudo systemctl status mysql
sudo systemctl restart mysql

Su hosting condiviso, se phpMyAdmin non funziona devi contattare il supporto del provider: il problema è dalla loro parte e non puoi risolverlo autonomamente. Prima di contattarli, verifica la pagina di stato del servizio del tuo hosting — spesso i provider comunicano i disservizi in tempo reale.

Il database è corrotto

Un database corrotto può causare errori di connessione o funzionamento parziale del sito. La corruzione avviene quando le tabelle del database perdono integrità, solitamente dopo un crash del server, un’interruzione improvvisa durante una scrittura o un aggiornamento interrotto di un plugin.

WordPress include una funzione di riparazione del database integrata. Per attivarla, aggiungi questa riga al file wp-config.php:

define('WP_ALLOW_REPAIR', true);

Poi visita l’indirizzo tuosito.it/wp-admin/maint/repair.php. Vedrai due opzioni: “Ripara database” e “Ripara e ottimizza database”. La seconda è più completa e consigliata. Al termine, WordPress mostrerà il risultato per ogni tabella.

Importante: rimuovi immediatamente la riga WP_ALLOW_REPAIR dal file wp-config.php dopo la riparazione. Questa funzione non richiede autenticazione e chiunque potrebbe accedervi se rimane attiva.

In alternativa, puoi riparare le tabelle da phpMyAdmin: seleziona tutte le tabelle del database, scegli “Ripara tabella” dal menu a tendina in basso ed esegui. Se una tabella risulta irrecuperabile, potrebbe essere necessario ripristinarla da un backup.

Il disco del server è pieno

Un motivo spesso sottovalutato è lo spazio disco esaurito. Se il server non ha più spazio disponibile, MySQL non può scrivere nuovi dati e può crashare o rifiutare le connessioni. Questo problema è più comune di quanto si pensi, specialmente su hosting con piani a spazio limitato.

Le cause tipiche dell’esaurimento dello spazio sono: file di log cresciuti a dismisura, backup accumulati nella cartella del sito, cartella wp-content/uploads piena di media non ottimizzati, o file di cache non ripuliti. Controlla lo spazio disponibile dal pannello hosting o via SSH con il comando df -h. Se il disco è pieno, elimina file non necessari (vecchi backup, log, cache) per liberare spazio e riavvia MySQL.

Troppi utenti simultanei (connessioni esaurite)

Ogni visitatore del sito apre una o più connessioni al database. MySQL ha un limite massimo di connessioni simultanee configurato nel server. Quando questo limite viene raggiunto, le nuove connessioni vengono rifiutate e WordPress mostra l’errore di connessione al database.

Questo problema si verifica tipicamente durante picchi di traffico (un articolo diventa virale, una promozione attira molti visitatori) o quando plugin mal ottimizzati aprono troppe connessioni. Anche un attacco DDoS può esaurire le connessioni disponibili.

Le soluzioni includono: attivare un sistema di cache per ridurre le query al database (come spiegato nel nostro articolo sulla configurazione della cache), ottimizzare i plugin che generano molte query, aumentare il limite di connessioni MySQL sul server (se hai accesso alla configurazione) o valutare un upgrade del piano hosting. Su hosting condiviso, il limite di connessioni è fissato dal provider e spesso molto basso: un motivo in più per considerare un VPS se il sito cresce.

Il prefisso delle tabelle è errato

WordPress usa un prefisso per le tabelle del database, definito in wp-config.php alla riga $table_prefix. Il valore predefinito è wp_, ma per ragioni di sicurezza molti hosting e installatori automatici usano un prefisso personalizzato casuale.

Se il prefisso in wp-config.php non corrisponde al prefisso effettivo delle tabelle nel database, WordPress si connette al database con successo ma non trova le tabelle corrette, causando comportamenti anomali o errori. Questo può succedere dopo un ripristino parziale del database o una migrazione mal configurata. Verifica il prefisso aprendo phpMyAdmin e controllando il nome delle tabelle: se iniziano con abc_, il valore in wp-config.php deve essere esattamente abc_.

L’errore appare solo nel pannello admin

Se il sito funziona per i visitatori ma l’errore appare solo in wp-admin, il problema potrebbe essere legato a un plugin che corrompe le tabelle durante operazioni admin. In questo caso:

  1. Rinomina la cartella wp-content/plugins in plugins-disabled via FTP.
  2. Prova ad accedere a wp-admin.
  3. Se funziona, rinomina la cartella al nome originale e riattiva i plugin uno alla volta per identificare il colpevole.

Un’altra causa è un database parzialmente corrotto: le tabelle usate dal frontend funzionano ma quelle usate dal backend (come wp_options) sono danneggiate. In questo caso, la riparazione del database descritta sopra risolve il problema.

Errore intermittente: funziona a volte

L’errore di connessione che appare e scompare in modo casuale è il più insidioso perché difficile da diagnosticare. Le cause più probabili sono:

  • Server MySQL sovraccarico: durante i picchi di carico, il database impiega troppo tempo a rispondere e WordPress va in timeout. La soluzione è ottimizzare le query o potenziare il server.
  • Hosting condiviso instabile: su hosting condivisi, le risorse sono condivise con altri siti. Se un altro sito sullo stesso server consuma troppe risorse, il tuo ne risente. Considera un upgrade.
  • Plugin con query pesanti: alcuni plugin (statistiche, log delle attività, plugin di sicurezza con log estesi) generano query molto pesanti che rallentano il database. Identifica il plugin con il plugin Query Monitor e valuta se disattivarlo o sostituirlo.

Prevenire l’errore in futuro

Per ridurre al minimo il rischio di ritrovarti con il sito offline per errori di database:

  • Backup regolari del database: configura backup automatici giornalieri del database con un plugin dedicato. In caso di corruzione, puoi ripristinare rapidamente.
  • Monitora lo spazio disco: imposta un alert quando il disco supera l’80% di utilizzo.
  • Ottimizza il database periodicamente: plugin come WP-Optimize ripuliscono revisioni vecchie, commenti spam e dati transienti che appesantiscono il database.
  • Mantieni le credenziali al sicuro: dopo una migrazione, verifica sempre che le credenziali in wp-config.php siano aggiornate.

Il sito è ancora offline? Interveniamo noi

L’errore di connessione al database può avere cause complesse che richiedono analisi approfondite del server e del database. Se hai provato le soluzioni descritte e il sito è ancora down, il team di SoccorsoWP può intervenire immediatamente per diagnosticare il problema, riparare il database e riportare il tuo sito online. Apri un ticket e risolviamo il problema insieme.

Condividi:

Lascia un commento