Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

🔧 Errore di connessione al database WordPress: una soluzione rapida

🔧 Errore di connessione al database WordPress: una soluzione rapida

Il sito è diventato una pagina bianca vuota con una sola riga: «Errore nella connessione al database». Niente panico. Non è un attacco hacker e non è la morte del database. Nove volte su dieci il problema si risolve in cinque minuti.

In pratica ogni proprietario di un sito WordPress prima o poi si imbatte in questo errore. La causa è quasi sempre banale: una password sbagliata in wp-config.php, un server MySQL bloccato o una tabella corrotta dopo un aggiornamento fallito di un plugin.

Ecco quattro metodi collaudati per riportare in vita il sito, dalla soluzione più comune all'ultima spiaggia. Prima di toccare il database, fai un backup.

💡 Panoramica rapida:

  • Verifica le credenziali MySQL in wp-config.php (il colpevole più frequente)
  • Esegui lo strumento di riparazione database integrato tramite WP_ALLOW_REPAIR
  • Sostituisci i file core di WordPress danneggiati con una copia fresca
  • Se nulla funziona, ripristina il sito da un backup
Errore di connessione al database su schermata bianca di WordPress

Perché si verifica l'errore di connessione al database

WordPress archivia tutti i contenuti (articoli, pagine, impostazioni, utenti) in un database MySQL. Quando un browser richiede una pagina, il core PHP di WordPress interroga il database, recupera i dati e assembla l'HTML. Se il collegamento tra il core e il database si interrompe, vedi una schermata bianca con un messaggio di errore.

Le cause dell'interruzione sono quattro:

  • Credenziali errate. Nome utente, password o host del database in wp-config.php non corrispondono ai valori reali. Succede dopo una migrazione a un host diverso o dopo il reset della password MySQL.
  • Il database non è raggiungibile. Il server MySQL sull'host si è fermato per sovraccarico, manutenzione o limiti superati.
  • Tabelle corrotte. Un plugin o un tema ha danneggiato le tabelle di sistema durante l'installazione o la rimozione. È frequente con i plugin di caching e ottimizzazione.
  • File core danneggiati. Un trasferimento FTP incompleto, un aggiornamento automatico di WordPress fallito o codice malevolo.

Identificheremo la causa specifica passo dopo passo, dalla più probabile alla meno probabile.

Passo 1: verifica le credenziali in wp-config.php

Inizia con la soluzione più semplice. Il file wp-config.php si trova nella root del sito e contiene quattro righe chiave per la connessione al database:

1define('DB_NAME', 'database_name');
2define('DB_USER', 'username');
3define('DB_PASSWORD', 'password');
4define('DB_HOST', 'localhost');
Il file wp-config.php con le credenziali del database MySQL

Apri il file tramite il file manager del tuo hosting o via FTP e confronta ogni valore con quelli mostrati nel pannello di controllo dell'hosting sotto «MySQL Databases» o phpMyAdmin.

Presta attenzione a DB_HOST. La maggior parte degli host usa localhost, ma alcuni (soprattutto configurazioni cloud e cluster) forniscono un indirizzo IP separato o un dominio del server database. Se hai cambiato piano o host di recente, verifica prima questo parametro.

Dopo aver modificato i valori, salva il file e ricarica il sito. Funziona? Ottimo. Altrimenti, vai avanti.

Passo 2: ripara il database con WP_ALLOW_REPAIR

WordPress può riparare le proprie tabelle; devi solo abilitare lo strumento di riparazione integrato. Aggiungi una riga a wp-config.php prima di /* That's all, stop editing! */:

1define('WP_ALLOW_REPAIR', true);
Pagina di riparazione del database WordPress tramite repair.php

Ora vai a:

1https://your-site.com/wp-admin/maint/repair.php

Vedrai una pagina con due pulsanti: «Repair Database» e «Repair and Optimize Database». Il primo ripara soltanto le tabelle; il secondo le ottimizza anche. Per una soluzione rapida il primo pulsante è sufficiente.

Al termine del processo, ricordati di rimuovere la riga WP_ALLOW_REPAIR da wp-config.php. Se la lasci, chiunque scopra l'URL repair.php può eseguire riparazioni senza autenticazione.

In pratica questo metodo risolve circa un terzo degli errori di connessione. Se non ha funzionato, passa ai file core.

Se preferisci vedere il processo in modo visivo, il video qui sopra mostra ogni passaggio in tempo reale, dalla diagnostica al recupero.

Passo 3: sostituisci i file core di WordPress danneggiati

I file core danneggiati sono un'altra causa comune. Si corrompono quando una connessione FTP cade, un aggiornamento automatico fallisce o script malevoli li manomettono.

Sostituzione dei file core danneggiati di WordPress tramite client FTP

Procedura di sostituzione:

  • Scarica l'ultimo archivio WordPress dal sito ufficiale.
  • Estrai l'archivio sul tuo computer.
  • Elimina la cartella wp-content e il file wp-config-sample.php dalla cartella estratta. Non devi caricarli; altrimenti sovrascriverai temi, plugin e upload.
  • Carica i file e le cartelle rimanenti sul server via FTP o tramite il file manager del tuo hosting, sostituendo i file esistenti.

Il core ora è aggiornato e i tuoi contenuti e impostazioni restano intatti: risiedono in wp-content e nel database, che non hai modificato. Pulisci la cache del browser prima di testare; vecchi script in cache a volte mascherano un recupero riuscito.

Passo 4: ripristina il sito da un backup

Se i tre passi precedenti non hanno prodotto risultati, il problema è più profondo di quanto sembri. Il danno non è limitato a singoli file o tabelle; la struttura stessa del database è compromessa. L'unica soluzione affidabile è tornare all'ultimo punto funzionante.

La modalità di ripristino dipende da cosa hai usato per i backup. Abbiamo trattato tutti i metodi in dettaglio in un articolo separato: come ripristinare WordPress da un backup, via cPanel, FTP, plugin o phpMyAdmin.

Tornare a un backup annullerà le modifiche recenti del sito: nuovi articoli, impostazioni dei plugin, cambi di tema. Ma è meglio di un sito morto che non si carica.

⁉️🤔 Domande frequenti

Perché l'errore compare solo a volte e non in modo costante?

Molto probabilmente il provider di hosting limita il numero di connessioni MySQL simultanee e il database diventa temporaneamente non disponibile durante i picchi di traffico. Verifica i limiti nel tuo piano di hosting. Su hosting condiviso la soluzione di solito è passare a un VPS.

Posso riparare il database via phpMyAdmin senza toccare wp-config.php?

Sì. Accedi a phpMyAdmin dal pannello di hosting, seleziona il database del sito, spunta tutte le tabelle e scegli «Repair table» dal menu a tendina «With selected». È l'equivalente di WP_ALLOW_REPAIR, ma senza modificare codice.

Passare a un tema predefinito aiuta con un errore di connessione al database?

No. L'errore si verifica a livello di connessione PHP-MySQL; i temi non c'entrano. Cambiare tema risolve problemi di visualizzazione, non di connessione.

Cosa devo fare se il database è danneggiato in modo irreversibile?

Se WP_ALLOW_REPAIR e phpMyAdmin non riescono a risolverlo, contatta il supporto del tuo host. La maggior parte dei provider conserva backup automatici del server per gli ultimi 3-7 giorni. Ripristinare da un backup del genere è questione di un ticket di assistenza.

Un plugin di sicurezza può causare questo errore?

Sì. Alcuni plugin di sicurezza cambiano il prefisso delle tabelle (da wp_ a qualcosa di casuale) o bloccano le connessioni esterne al database. Se l'errore è comparso subito dopo aver installato un plugin del genere, rinomina temporaneamente la sua cartella via FTP e testa il sito.

Il sito respira di nuovo: cosa ricordare per il futuro

L'ordine di risoluzione per «Errore nella connessione al database» va sempre dal semplice al complesso. La metà delle volte il primo passo è sufficiente: apri wp-config.php, correggi la password e il sito torna in vita.

Imposta backup automatici se non l'hai ancora fatto. Il plugin gratuito UpdraftPlus salva database e file sul cloud (Google Drive, Dropbox o dove preferisci) una volta al giorno. Con un backup, qualsiasi guasto WordPress si trasforma da disastro in un inconveniente di dieci minuti. Provato.