Come posso risolvere i problemi di errore di database nelle applicazioni Wordpress all'interno di Lightsail?

Ultimo aggiornamento: 28/09/2021

Ricevo uno o entrambi i seguenti errori durante la connessione alla mia applicazione basata su WordPress:

  • "Errore durante la creazione di una connessione al database."
  • "Una o più tabelle di database non sono disponibili. Potrebbe essere necessario riparare il database."

Come posso risolvere questi errori?

Breve descrizione

L'errore «Errore durante la creazione di una connessione al database» potrebbe verificarsi per i seguenti motivi:

  • Sono presenti tabelle di database danneggiate.
  • La connessione al database remoto è disattivata.
  • Il servizio di database è inattivo.
  • Lo spazio sul volume è insufficiente.
  • Ci sono credenziali di accesso errate nel file di configurazione di WordPress.

Risoluzione

Tabelle di database danneggiate

Apri la pagina wp-admin del tuo sito web (ad esempio, example.com/wp-admin) nel browser e cerca l'errore "Una o più tabelle del database non sono disponibili. Potrebbe essere necessario riparare il database". Se viene visualizzato questo errore, visualizzerai «Errore durante la creazione della connessione al database» a causa di tabelle di database danneggiate. Per riparare le tabelle danneggiate, effettuate le seguenti operazioni:

1.    Accedi al file wp-config.php utilizzando un editor di testo, ad esempio l'editor vi.

$ sudo vi wp-config.php

2.    Aggiungi la seguente riga nel file wp-config.php. Assicurati di aggiungere la riga immediatamente prima della riga "È tutto, non serve altro editing! Buon blogging".

define('WP_ALLOW_REPAIR' ,true);

3.    Dopo aver aggiunto l'impostazione precedente al file, accedi al seguente URL e quindi esegui Ripristina database:

/wp-admin/maint/repair.php (ad esempio, example.com/wp-admin/maint/repair.php)

4.    Dopo aver eseguito il ripristino del database, rimuovi la riga di codice aggiunta al file wp-config.php. Se non rimuovi questa riga, chiunque può eseguire la riparazione sul tuo database.

Connessione al database remoto disattivata

A volte i database risiedono su un server di database remoto. Se il server di database non consente connessioni remote dall'istanza che ospita il sito Web, non è possibile connettersi al database. Per risolvere il problema, effettua le seguenti operazioni:

1.    Controlla il valore DB_HOST nel file di configurazione wp-config.php. Se l'host non è localhost o 127.0.0.1, il database risiede in un server remoto, come illustrato nell'esempio seguente:

define('DB_HOST', '192.168.22.9');

2.    Prova a connettere via telnet dal server al server remoto sulla porta 3306. Se la connessione non riesce, le connessioni remote non sono consentite nella configurazione del database sul server remoto. Oppure c'è un firewall sul server remoto che blocca la connessione. Contatta il proprietario del database esterno o il supporto tecnico per ricevere assistenza per consentire le connessioni dalla tua istanza Lightsail.

Come da best practice, è consigliabile archiviare il database del sito Web in un database gestito da Lightsail per un'elevata disponibilità e sicurezza

Il servizio di database è inattivo

Nota: i seguenti percorsi di file e comandi potrebbero cambiare a seconda che l'istanza di WordPress Lightsail utilizzi MySQL o MariaDB. Inoltre, i percorsi dei file e i comandi variano a seconda che l'istanza utilizzi pacchetti di sistema Linux nativi (Approccio A) o se si tratta di un'installazione autonoma (Approccio B). Per identificare il tipo di server di database e l'approccio da seguire, esegui i seguenti comandi:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A" || echo "Approach B"
test -d /opt/bitnami/mariadb && echo "MariaDB" || echo "MySQL"

1.    Se hai verificato che non ci sono danni alle tabelle e non ci sono problemi di connessione al database remoto e WordPress non riesce ancora a connettersi al database, il server del database potrebbe essere inattivo. Ciò potrebbe verificarsi a causa di problemi di configurazione del database, traffico intenso su un server, spazio su disco insufficiente, scarsa memoria disponibile e così via. Controlla lo stato del servizio di database utilizzando il seguente comando:

Server database MySQL

sudo /opt/bitnami/ctlscript.sh status mysql

Server di database MariaDB

sudo /opt/bitnami/ctlscript.sh status mariadb

2.    Se il comando precedente mostra che il database è in stato "arrestato", prova ad avviare il servizio di database utilizzando il seguente comando:

Server database MySQL

sudo /opt/bitnami/ctlscript.sh start mysql

Server di database MariaDB

sudo /opt/bitnami/ctlscript.sh start mariadb

3.    Se non riesci ancora ad avviare il servizio di database e visualizzi errori durante il processo di avvio, controlla i registri del servizio di database per identificare la causa principale e risolvere il problema. Il file di registro del servizio di database principale si trova in una delle seguenti posizioni nell'istanza di WordPress Lightsail:

Server database MySQL seguendo l'approccio A: /opt/bitnami/mysql/logs/mysqld.log

Server database MySQL seguendo l'approccio B: /opt/bitnami/mysql/data/mysqld.log

Server di database MariaDB seguendo l'approccio A: /opt/bitnami/mariadb/logs/mysqld.log

Server di database MariaDB seguendo l'approccio B: /opt/bitnami/mariadb/data/mysqld.log

Le prestazioni e la connettività del database possono essere influenzate dallo spazio su disco insufficiente e/o dalla scarsa memoria disponibile. Controlla queste risorse usando i comandi df e free.

Spazio insufficiente sul volume

Se lo spazio libero su disco sul volume è 100% o appena inferiore al 100%, il servizio di database potrebbe non essere disponibile.

1.    Esegui il seguente comando:

$ sudo df -h

Il comando precedente elenca la quantità di spazio libero su disco, come illustrato nell'esempio seguente:

Filesystem      Size    Used     Avail      Use%    Mounted on
devtmpfs        1.9G     0       1.9G        0%     /dev
tmpfs           1.9G     0       1.9G        0%     /dev/shm
tmpfs           1.9G    400K     1.9G        1%     /run
tmpfs           1.9G     0       1.9G        0%     /sys/fs/cgroup
/dev/nvme0n1p1  8.0G    8.0G      0G        100%    /
tmpfs           389M     0       389M        0%     /run/user/1000

2.    Se l'output del comando mostra che lo spazio disponibile non è sufficiente, è possibile ridimensionare l'istanza ingrandendola. In alternativa, è possibile eliminare i file non necessari dal server per creare spazio libero.

3.    Dopo aver aumentato lo spazio libero su disco, riavvia il servizio di database.

Credenziali di accesso errate nelle impostazioni di WordPress

WordPress ha bisogno di una stringa di connessione al database specifica, che include un nome utente, una password e un host per accedere al database. Se uno di questi elementi è cambiato, WordPress non può accedere al database.

1.    Per verificare di utilizzare la stringa di connessione corretta, ottieni i dettagli della stringa di connessione DB_NAME, DB_HOST, DB_USER e DB_PASSWORD nel file wp-config.php.

2.    Accedi al database da un terminale utilizzando la stringa di connessione. Assicurati di sostituire DB_NAME, DB_HOST E DB_USER con i valori ottenuti nel passaggio 1.

sudo mysql 'DB_NAME' -h 'DB_HOST' -u 'DB_USER' -p
Enter password: ********

Nota: la password non viene visualizzata durante l'immissione in modo che non sia visibile agli altri utenti.

3.    Premi il tasto INSERISCI dopo aver inserito la password.

Se viene visualizzato un errore di Accesso negato quando si utilizza il comando precedente, in genere significa che le credenziali non sono corrette.

Se utilizzi un host DB remoto, aggiungi la stringa di connessione corretta nel file wp-config.php. Se il database si trova nello stesso server, assicurati che DB_NAME sia bitnami_wordpress e DB_USER sia bn_wordpress.

Per reimpostare la password dell'utente del database, effettua le seguenti operazioni:

1.    Utilizza il seguente comando per accedere a /home/bitnami/bitnami_credentials. Annota la password del database principale.

sudo cat /home/bitnami/bitnami_credentials

2.    Accedi alla shell MySQL/MariaDB usando il seguente comando, quindi inserisci la password ottenuta dal comando precedente. Se non riesci ad accedere alla shell usando la password di root del database, reimposta la password (MySQL o MariaDB)

sudo mysql -u root -p
Enter password: ********

3.    All'interno della shell MySQL o MariaDB, esegui la seguente query per assicurarsi che il database bitnami_wordpress esista:

show databases;

4.    Esegui la seguente query per accertarsi che l'utente del database bn_wordpress esista:

SELECT user FROM mysql.user;

5.    Reimposta la password utente del database "bn_wordpress" utilizzando la seguente query.

Nota: Sostituisci PASSWORD con la password ottenuta dal file wp-config.php.

Database MySQL

alter user 'bn_wordpress'@'localhost' identified by 'PASSWORD‘;
alter user 'bn_wordpress'@'127.0.0.1' identified by 'PASSWORD‘;

Database MariaDB

alter user 'bn_wordpress'@'%' identified by 'PASSWORD‘;

Nota: se nessuna delle risoluzioni precedenti funziona, è possibile ripristinare l'istanza utilizzando uno snapshot del backup.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?