Menu
Bug e Vulnerabilità

Come risolvere l’errore “Error Establishing a Database Connection” in WordPress

Gianluca Gentile · · 5 min di lettura

Come risolvere l’errore “Error Establishing a Database Connection” in WordPress

L’errore “Error Establishing a Database Connection” è uno dei più temuti da chi gestisce un sito WordPress. Quando compare, il sito mostra solo una pagina bianca con questo messaggio e la bacheca diventa inaccessibile. Il problema è nella comunicazione tra WordPress e il database MySQL. In questa guida ti spiego le cause principali e come risolvere passo dopo passo.

Cosa significa questo errore

WordPress salva tutti i contenuti (articoli, pagine, impostazioni, utenti) in un database MySQL. Ogni volta che un visitatore apre una pagina, WordPress si connette al database per recuperare i dati. L’errore “Error Establishing a Database Connection” indica che WordPress non riesce a stabilire questa connessione. Le cause possono essere diverse: credenziali errate, server MySQL spento, database corrotto o server sovraccarico.

Verificare le credenziali nel wp-config.php

La causa più frequente sono le credenziali del database errate nel file wp-config.php. Apri il file via FTP o SSH e controlla queste quattro righe:

define('DB_NAME', 'nome_database');
define('DB_USER', 'utente_database');
define('DB_PASSWORD', 'password_database');
define('DB_HOST', 'localhost');

Verifica che ogni valore corrisponda alle credenziali reali del tuo database. Errori comuni includono password cambiate dal pannello hosting senza aggiornare wp-config.php, spazi extra prima o dopo i valori e caratteri speciali nella password che richiedono l’escape. Se non sei sicuro delle credenziali corrette, accedi al pannello di controllo del tuo hosting e controlla i dettagli del database nella sezione “Database”.

Verificare che il server MySQL sia attivo

Se le credenziali sono corrette, il problema potrebbe essere il server MySQL stesso. Su un hosting condiviso, MySQL è gestito dal provider e raramente si spegne. Su un VPS o server dedicato, verifica lo stato di MySQL:

# Controllare lo stato di MySQL/MariaDB
systemctl status mysql
# oppure
systemctl status mariadb

# Riavviare MySQL se è fermo
systemctl restart mysql

Se MySQL si è fermato, spesso il motivo è la mancanza di RAM. Controlla i log di MySQL in /var/log/mysql/error.log per capire la causa. Se il server esaurisce la memoria frequentemente, potresti dover ottimizzare la configurazione di MySQL o aumentare la RAM del server.

Controllare se il database è corrotto

Un database corrotto può causare errori di connessione. WordPress include una funzionalità di riparazione integrata. Aggiungi questa riga al file wp-config.php:

define('WP_ALLOW_REPAIR', true);

Poi visita https://tuodominio.com/wp-admin/maint/repair.php nel browser. Vedrai due opzioni: “Ripara database” e “Ripara e ottimizza database”. Clicca su “Ripara e ottimizza” per correggere le tabelle corrotte e ottimizzare le prestazioni. Dopo aver completato la riparazione, rimuovi immediatamente la riga da wp-config.php perché questa pagina è accessibile senza autenticazione.

Verificare il valore di DB_HOST

La maggior parte degli hosting usa localhost come host del database, ma non tutti. Alcuni provider richiedono un indirizzo specifico come mysql.tuodominio.com o un indirizzo IP interno. Se hai recentemente migrato il sito su un nuovo hosting, il valore di DB_HOST potrebbe essere cambiato. Controlla la documentazione del tuo hosting o chiedi al supporto quale sia il valore corretto.

In alcuni casi, puoi provare queste alternative a localhost:

define('DB_HOST', '127.0.0.1');
// oppure con la socket
define('DB_HOST', 'localhost:/var/run/mysqld/mysqld.sock');

Quando il problema è il traffico elevato

Un picco di traffico può esaurire le connessioni MySQL disponibili. Il database ha un limite massimo di connessioni contemporanee (configurato con max_connections in MySQL). Quando questo limite viene raggiunto, le nuove connessioni vengono rifiutate e WordPress mostra l’errore. Su un hosting condiviso, questo limite è spesso molto basso.

Le soluzioni includono l’installazione di un plugin di caching (che riduce drasticamente le query al database), l’uso di un object cache come Redis o Memcached, e il passaggio a un hosting con risorse maggiori se il traffico è costantemente alto. Anche l’ottimizzazione delle query lente con un plugin come Query Monitor può aiutare a ridurre il carico sul database. Un sito WordPress ben ottimizzato con caching attivo può servire migliaia di visitatori contemporanei con un consumo minimo di connessioni al database.

Testare la connessione al database manualmente

Se non riesci a capire se il problema è nelle credenziali o nel server MySQL, puoi testare la connessione direttamente. Crea un file test-db.php nella cartella principale di WordPress con questo contenuto:

<?php
$conn = new mysqli('localhost', 'utente_database', 'password_database', 'nome_database');
if ($conn->connect_error) {
    die('Connessione fallita: ' . $conn->connect_error);
}
echo 'Connessione al database riuscita!';
$conn->close();

Apri il file nel browser visitando https://tuodominio.com/test-db.php. Se vedi “Connessione riuscita”, le credenziali sono corrette e il problema è altrove. Se vedi un errore specifico, saprai esattamente cosa correggere. Elimina questo file immediatamente dopo il test perché espone le credenziali del database.

Cosa fare se l’errore compare solo nella bacheca

Se il sito funziona per i visitatori ma la bacheca mostra l’errore, il problema è nella tabella wp_options. Questa tabella viene consultata intensivamente dalla bacheca e può corrompersi o crescere a dismisura con dati transient accumulati. Accedi a phpMyAdmin, seleziona la tabella wp_options e usa “Ripara tabella”. Per ridurne le dimensioni, elimina i transient scaduti con la query:

DELETE FROM wp_options WHERE option_name LIKE '_transient_%' AND option_value != '';

Questa operazione può ridurre la tabella da centinaia di migliaia di righe a poche migliaia, migliorando significativamente le prestazioni della bacheca.

Serve assistenza urgente?

Se il tuo sito mostra “Error Establishing a Database Connection” e non riesci a risolvere, il team di SoccorsoWP può intervenire rapidamente per diagnosticare il problema e ripristinare il sito. Apri un ticket e torna online il prima possibile.

Condividi: