Come risolvere errore di connessione al database WordPress
Se hai navigato in rete qualche volta, avrai incontrato almeno una volta questo errore.
L’errore di connessione al database di WordPress è una di quelle maledizioni che potrebbero essere causate da molte ragioni.
Come principiante WordPress, questo potrebbe essere terribilmente frustrante specialmente quando accade senza che tu cambi nulla.
Ci siamo imbattuti più volte in questo problema. Ci vogliono poco più di 20 minuti per rilevare e risolvere questo problema.
In questo articolo, ti mostreremo come risolvere l’errore di connessione al database di WordPress inserendo un elenco di possibili soluzioni, tutte in un unico posto.
Nota: prima di apportare modifiche al database, assicurati di disporre di backup sufficienti.
Perché ricevi questo errore?
Quindi, è facile dire che stai ricevendo questo errore perché WordPress non è in grado di stabilire una connessione con il database. Ora il motivo per cui WordPress non è in grado di stabilire una connessione al database può variare.
- Potrebbe essere ad esempio che le credenziali di accesso al database siano errate o siano state modificate.
- Potrebbe darsi che il server del database non risponda.
- Potrebbe essere che il tuo database sia stato corrotto.
Nella nostra esperienza, la maggior parte delle volte questo errore si verifica a causa di una sorta di errore del server, ma potrebbero esserci anche altri fattori. Diamo un’occhiata a come fare per risolvere questo problema.
Il problema si verifica anche in / wp-admin /?
La prima cosa che dovresti fare è controllare che lo stesso errore sia presente sul front-end del sito, e sul back-end (wp-admin). Se il messaggio di errore è lo stesso su entrambe le pagine “Error establishing a database connection”, quindi procedi col passaggio successivo.
Se si verifica un errore diverso su wp-admin, ad esempio qualcosa tipo “Una o più tabelle del database indisponibili. Potrebbe essere necessario riparare il database “, quindi sarà necessario ripristinare il database.
Puoi farlo aggiungendo la seguente riga nel tuo file wp-config.php. Aggiungilo poco prima della linea “That’s all, stop editing! Happy blogging “del file wp-config.php.
1 define (‘WP_ALLOW_REPAIR’, true);
Dopo averlo fatto, puoi controllare le impostazioni visitando questa pagina: http://www.miosito.com/wp-admin/maint/repair.php
Ricorda che l’utente non ha bisogno di essere loggato per accedere a questa funzionalità quando essa è impostata.
Questo perché il suo scopo principale è quello di riparare un database danneggiato, gli utenti non possono accedere al sito wordpress quando il database è corrotto. Quindi una volta che hai finito di riparare e ottimizzare il tuo database, assicurati di rimuoverlo dal tuo file wp-config.php.
Se questa riparazione non ha risolto il problema, o hai problemi nell’esecuzione della riparazione, continua a leggere questo articolo perché potresti trovare un’altra soluzione.
Controllo del file di configurazione WP
WP-Config.php è probabilmente il singolo file più importante nella tua intera installazione di WordPress. Qui è dove si specificano i dettagli di WordPress per connettersi il proprio database. Se hai modificato la password di root o la password dell’utente del database, dovrai modificare anche questo file. La prima cosa che dovresti sempre controllare è se nel tuo file wp-config.php è a posto come segue.
1
2
3
4
|
define( 'DB_NAME' , 'database-name' ); define( 'DB_USER' , 'database-username' ); define( 'DB_PASSWORD' , 'database-password' ); define( 'DB_HOST' , 'localhost' ); |
Ricorda che il tuo valore DB_Host potrebbe non essere sempre localhost. A seconda dell’host, sarà diverso. Per host famosi come HostGator, WP Hosting, BlueHost, SiteGround, è localhost.
Alcuni suggeriscono di risolvere il problema sostituendo localhost con l’IP. È comune vedere questo tipo di problema durante l’esecuzione di WordPress su un ambiente server locale. Ad esempio su MAMP, il valore di DB_Host quando viene modificato con l’IP potrebbe funzionare.
1
|
define( 'DB_HOST' , '127.0.0.1:8889' ); |
Gli IP varieranno a seconda dei servizi di web hosting.
Se tutto in questo file è corretto (controlla che non ci siano errori di battitura), allora è giusto dire che c’è qualcosa di sbagliato sul server.
Controlla il tuo host web (MySQL Server)
Spesso noterai questo errore di connessione al database quando il tuo sito riceve molto traffico. Fondamentalmente, in questo caso il tuo server host non è in grado di gestire il carico di traffico(specialmente quando si è su un hosting condiviso). Il tuo sito diventerà molto lento e alcuni utenti riceveranno l’errore. Quindi la cosa migliore che dovresti fare è chiamare al telefono il tuo hosting provider e chiedere se il tuo server MySQL è attivo.
Per quegli utenti che vogliono verificare da soli se il server MySQL è in esecuzione, è possibile fare alcune operazioni.
Prova altri siti sullo stesso server per vedere se hanno lo stesso problema. Se anche loro ricevono lo stesso errore, allora sicuramente c’è qualcosa che non va nel tuo server MySQL.
Se non hai altri siti su questo stesso account hosting, vai sul tuo cPanel, prova ad accedere a phpMyAdmin e connetti il database.
Se è possibile connettersi, è necessario verificare se l’utente del database dispone dell’autorizzazione necessaria. Crea un nuovo file chiamato testconnection.php e incollaci il seguente codice dentro:
1
2
3
4
5
6
7
8
|
<?php $link = mysqli_connect( 'localhost' , 'username' , 'password' ); if (! $link ) { die ( 'Could not connect: ' . mysqli_error()); } echo 'Connected successfully' ; mysqli_close( $link ); ?> |
Assicurati di sostituire il nome utente e la password. Se lo script si connette correttamente, significa che il tuo utente ha un’autorizzazione sufficiente, e c’è qualcos’altro di sbagliato. Torna al tuo file wp-config per assicurarti che tutto sia corretto (riesegui la scansione degli errori di battitura).
Se non riesci a connetterti al database passando da phpMyAdmin, allora sai che è qualcosa con il tuo server. Non significa necessariamente che il tuo server MySQL non funzioni. Potrebbe significare che il tuo utente non abbia un’autorizzazione sufficiente.
Nel nostro caso, quando abbiamo ricevuto questo errore, il nostro server MySQL era in esecuzione. Tutti gli altri siti sui server funzionavano correttamente, ad eccezione di SitoWP. Quando abbiamo provato ad andare sul nostro phpMyAdmin, abbiamo finito per trovare l’errore:
#1045 – Access denied for user ‘gpda’@’%’ (using password: snap)
Abbiamo contattato al telefono il nostro provider(WP-Hosting) e il loro supporto ha trovato rapidamente il problema. Le autorizzazioni dei nostri utenti sono state ripristinate.
Quindi, se vedi l’errore di accesso negato in entrambi i casi di connessione al tuo phpMyAdmin o attraverso i risultati di testconnection.php, devi contattare immediatamente il tuo host per fargli risolvere il problema.
Soluzioni che hanno funzionato per gli altri
È importante notare che queste soluzioni sono peculiari e potrebbero non funzionare per te. Utilizzale quindi a tuo rischio e assicurati di disporre di backup sufficienti in caso qualcosa va storto.
Un developer ci ha inviato nota dicendo che il suo cliente stava ricevendo l’errore di connessione al database WordPress. Anche dopo aver riparato il database, l’errore non è andato via. Quindi ha provato varie cose e alla fine, il problema era l’url del sito. Apparentemente era stato cambiato e ciò ha causato la persistenza dell’errore. Ha eseguito quindi la seguente query SQL andando su phpMyAdmin:
1
|
UPDATE wp_options SET option_value= 'YOUR_SITE_URL' WHERE option_name= 'siteurl' |
Assicurati di sostituire la voce YOUR_SITE_URL con l’url effettivo del sito, ad esempio: https://www.wp-assistenza.it. Le opzioni wp_options saranno diverse se hai modificato il prefisso predefinito del database di WordPress.
Questo sembrava risolvere il problema per lui e per pochi altri che commentavano anche il suo post.
Sachinum su un post del forum sviluppatori WordPress ha suggerito di essere in grado di connettere il database con testconnection.php, quindi ha cambiato l’utente wp-config.php con l’utente root. WordPress ha iniziato a funzionare perfettamente. Quindi ha ripristinato le impostazioni utente del database e ha continuato a funzionare. Non riusciva a capire cosa c’era che non andava, ma ha concluso che fosse un errore di battitura.
Cutewonders suggeriva di rimuovere il contenuto di active_plugins nella tabella wp_options e di modificare i contenuti di recent_edited. Fondamentalmente ciò sembrava risolvere il problema. Guarda la risposta completa qui.
Abbiamo letto anche numerose fonti di utenti che hanno semplicemente caricato una nuova copia di WordPress e questo ha corretto l’errore.
Questo è un errore davvero frustrante. Hai provato una soluzione che sembra funzionare per te? Saremmo lieti di espandere questa risorsa, in modo che altri non debbano perdere tanto tempo per trovare una soluzione.