CLI WP "Errore durante la creazione di una connessione al database" in localhost (MAMP)


13

Ottengo questo errore quando provo a creare qualcosa con l'interfaccia della riga di comando di WP:

Error establishing a database connection. This either means that the username and password information in your `wp-config.php` file is incorrect or we cant contact the database server at `localhost`. This could mean your hosts database server is down.

Ma posso aprire il sito con il link: http: // localhost: 8888 / nome progetto

Qualche idea?

Risposte:


27

Entra nel tuo wp-config.phpe cambia il tuo DB_HOSTin 127.0.0.1invece di localhost.

Il merito va a Craig Wayne sopra nei commenti.


2
In MAMP Pro ho anche dovuto selezionare "Consenti accesso alla rete a MySQL" affinché funzioni.
Nick M,

Ho provato questo, ma nessun aiuto. Sto usando la piastra di cottura Bedrock. Sono passato attraverso il file wp-config e .env più e più volte, sono passato attraverso le configurazioni MAMP più e più volte. Debug del file wb-db.php. Quindi ho rimosso il # dalla riga DB_HOST in .env, e tutto è a posto.
Tom,

@ Tom Prova questo tommcfarlin.com/installing-wp-cli-with-mamp prima di cambiare l'host wp-config.php. Dovrebbe funzionare.
Maria Daniel Deepak,

5

Per me, la risposta stava cambiando l'impostazione per DB_HOSTal 127.0.0.1:8889posto di localhosta wp-config.php, e anche selezionando la casella "Permetti l'accesso alla rete a MySQL" nelle impostazioni MySQL. Impostare la porta sulla porta utilizzata da MAMP Pro per il database è stato l'elemento mancante critico che non ho visto nelle altre risposte qui. YMMV.


4

Assicurati di usare il binario MAMP PHP. Puoi verificare con quale versione di CLI WP CLI è in esecuzione

php wp-cli.phar --info

Per utilizzare l'ultimo MAMP PHP è necessario modificare il profilo bash o zsh:

PHP_VERSION=$(ls /Applications/MAMP/bin/php/ | sort -n | tail -1)
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH

Assicurati di ricaricare il profilo:

source ~/.bash_profile

Assicurarsi che le modifiche siano applicate correttamente:

  php wp-cli.phar --info

1
Quel primo comando dà solo l'erroreCould not open input file: wp-cli.phar
Felix Eve,

Hai eseguito il comando nella cartella principale di wordpress?
Eknows,

sì, ma non esiste alcun wp-cli.pharfile nella radice della directory WP .
Felix Eve,

Qui puoi trovare maggiori informazioni su come installare wp-cli.phar: ( wp-cli.org )
eknows

2
@FelixEve se durante l'installazione ti sei spostato wp-cli.pharsotto /usr/local/bin/wp, puoi wp --infoinvece emettere : quello visualizzato PHP binarydovrebbe essere quello sotto l'installazione di WP.
PJ_Finnegan,

0

Step1: controlla se il tuo server mysql è in esecuzione Step2: se sì, puoi accedere a mysql usando

mysql -u root -p

quindi inserire la password: (è necessario utilizzare questo comando dal terminale) quindi utilizzare il comando seguente per assicurarsi che il database esista:

show databases;
grant all privileges on database_name.* to 'root'@'localhost' identified by 'password';
flush privileges;
exit;

ora modifica il file wp-config.php e cerca

define('DB_NAME', 'db_name');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');

Ora riavvia il server e prova ad accedere alla dashboard di wordpress. Spero possa essere d'aiuto.


"mysql -u root -p" mi dà "Accesso negato per l'utente 'root' @ 'localhost' (usando la password: SÌ)"
Klevis Miho,

quando configuri il tuo database mysql, devi aver inserito una password. Usa quella password. Se non hai configurato la password al momento della configurazione del database mysql, premi Invio invece di qualsiasi password.
Maverick,

Ho fatto quello che hai scritto. È possibile connettersi al database con "mysql -u root -p". Anche i privilegi sono concessi. Ma l'errore è ancora lì.
Klevis Miho,

1
Ho scoperto che se cambio localhost a 127.0.0.1 nel mio wp-config.php, tutto funziona bene ... mi sento come se qui ci fosse un problema più grande
Craig Wayne,

1
Con un'installazione pulita di WordPress v3.6.9 e WP-CLI v1.5.1 la soluzione di @CraigWayne ha funzionato perfettamente.
tra il

0

Nel mio caso, oltre al suddetto messaggio di errore, ho anche ricevuto gli avvisi di seguito:

PHP Warning:  mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Warning:  mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning:  mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning:  mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562

Secondo questa domanda , questo problema si verifica perché il set di caratteri predefinito per MySQL 8.0 è utfmb4.

In effetti, ho potuto replicare l'errore aggiornando da MySQL 5.7 a MySQL 8.0

Ho risolto il problema esportando il database, eseguendo il downgrade a MySQL 5.7 e reimportando i dati. Ho anche eseguito test su MariaDB 10.3 e funziona benissimo.



0

Ci sono due parti di questo che devono lavorare insieme:

- È necessario passare da localhosta 127.0.0.1e aggiungere il numero di porta alla fine. Per me lo era 127.0.0.1:3306.

Il numero di porta si trova nel pannello MySQL in Mamp.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.