WP CLI "Errore nella connessione al database" in localhost (MAMP)

11 gen 2018, 12:19:04
Visualizzazioni: 31.6K
Voti: 32

Ricevo questo errore quando provo a creare qualcosa con WP CLI:

Errore nella connessione al database. Questo significa che le informazioni di username e password nel tuo file `wp-config.php` sono errate oppure non riusciamo a contattare il server del database su `localhost`. Potrebbe significare che il server database del tuo host non è attivo.

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

Qualche idea?

1
Commenti

Ecco un altro errore che appare sulla riga di comando per questo (almeno nel mio caso). Lo aggiungo nella speranza che Google aiuti le persone che lo cercano + "wp-cli": Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in

jerclarke jerclarke
26 giu 2021 20:56:06
Tutte le risposte alla domanda 8
6
51

Vai nel tuo file wp-config.php e modifica il valore DB_HOST in 127.0.0.1 invece di localhost.

Il merito va a Craig Wayne nei commenti sopra.

20 lug 2018 20:13:01
Commenti

In MAMP Pro ho anche dovuto selezionare "Consenti accesso alla rete per MySQL" per far funzionare tutto.

Nick M Nick M
22 ott 2018 09:16:51

Ho provato ma non è servito. Sto usando il boilerplate Bedrock. Ho controllato più volte il file wp-config e .env, ho rivisto più volte le configurazioni di MAMP. Ho eseguito il debug del file wb-db.php.

Poi ho rimosso il # dalla riga DB_HOST nel file .env, e tutto ha funzionato.

Tom Tom
20 nov 2018 11:45:29

@Tom Prova questo https://tommcfarlin.com/installing-wp-cli-with-mamp/ prima di modificare l'host in wp-config.php. Dovrebbe funzionare.

Maria Daniel Deepak Maria Daniel Deepak
7 ago 2019 11:35:03

@NickM - Mi rendo conto che questo è un commento vecchio, ma spero che tu veda questa risposta. Dov'è l'opzione "Consenti accesso di rete a MySQL"? Ho MAMP Pro 4.4.1 e non sono riuscito a trovare questa impostazione che menzioni. AGGIORNAMENTO: L'ho trovata, nel servizio MySQL. Sfortunatamente nel mio caso è già selezionata, insieme a "Solo da questo Mac".

omega33 omega33
30 ott 2020 05:26:42

Ho scoperto che richiede non solo 127.0.0.1 ma anche la porta, che per MAMP PRO è 127.0.0.1:8889

omega33 omega33
30 ott 2020 05:34:26

Volevo aggiungere qui che questo è generalmente corretto, ma è necessario un piccolo aggiustamento per devKinsta se lo stai usando invece di MAMP. Puoi trovare le informazioni del tuo host del database nel pannello di devKinsta e poi apportare le rispettive modifiche ip:porta nel wp config, ma per eseguire wp search-replace, devi poi tornare all'host originale di devKinsta per far funzionare di nuovo il sito come tale. Potrebbe esserci una soluzione migliore, ma questa sta funzionando per me.

jakeatwork jakeatwork
28 apr 2023 14:38:44
Mostra i restanti 1 commenti
2
15

Per me, la soluzione è stata cambiare l'impostazione di DB_HOST in 127.0.0.1:8889 invece di localhost nel file wp-config.php, e anche selezionare la casella per "Consenti l'accesso alla rete a MySQL" nelle impostazioni di MySQL. Impostare la porta corretta che MAMP Pro utilizza per il database è stato il pezzo mancante cruciale che non avevo visto nelle altre risposte qui. I risultati possono variare.

1 mag 2019 23:41:20
Commenti

+10 per questo. Però sono curioso del perché alcuni utenti devono aggiungere la porta e altri no

Jimmy Long Jimmy Long
7 feb 2024 08:14:46

Questo funziona. Ho alcuni siti wp definiti nel software WP Local che usano ciascuno una porta diversa per il mysql localhost, ho anche siti non-wp in esecuzione su un'istanza mysql separata in esecuzione sulla porta predefinita 3306 tramite MySQL Workbench. Il mio WP CLI probabilmente stava cercando di accedere alla porta predefinita da MySQL Workbench invece che alla porta del sito wp. Quindi aggiungere la porta risolve questo problema per me.

Studocwho Studocwho
30 set 2024 18:00:39
5

Assicurati di utilizzare il binario PHP di MAMP. Puoi verificare quale versione di PHP sta utilizzando WP CLI con:

php wp-cli.phar --info

Per utilizzare l'ultima versione di PHP di MAMP devi modificare il tuo 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

Verifica che le modifiche siano state applicate correttamente:

php wp-cli.phar --info
11 set 2018 11:15:54
Commenti

Quel primo comando restituisce solo l'errore Could not open input file: wp-cli.phar

Felix Eve Felix Eve
18 set 2018 11:19:28

Hai eseguito il comando nella cartella root di WordPress?

eknows eknows
18 set 2018 13:16:10

Sì, ma non c'è alcun file wp-cli.phar nella root della directory WP.

Felix Eve Felix Eve
18 set 2018 13:58:10

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

eknows eknows
20 set 2018 08:53:45

@FelixEve se durante l'installazione hai spostato wp-cli.phar in /usr/local/bin/wp, puoi eseguire wp --info invece: il PHP binary visualizzato dovrebbe essere quello sotto la tua installazione di WP.

PJ_Finnegan PJ_Finnegan
7 apr 2019 02:48:29
0

Ci sono due parti che devono funzionare insieme:

— Devi cambiare da localhost a 127.0.0.1 e aggiungere il numero di porta alla fine. Nel mio caso, era 127.0.0.1:3306.

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

Descrizione immagine

14 ott 2019 17:39:52
5

Passo 1: verifica se il tuo server MySQL è in esecuzione Passo 2: se sì, puoi accedere a MySQL utilizzando

mysql -u root -p

quindi inserisci la tua password: (devi usare questo comando dal terminale) quindi usa il seguente comando per assicurarti 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 tua dashboard WordPress. Spero che ti aiuti.

11 gen 2018 12:57:56
Commenti

"mysql -u root -p" mi dà "Access denied for user 'root'@'localhost' (using password: YES)"

Klevis Miho Klevis Miho
12 gen 2018 13:14:06

quando hai configurato il tuo database mysql, devi aver inserito una password. Usa quella password. Se non hai configurato alcuna password al momento dell'installazione del database mysql, premi semplicemente invio invece di inserire una password.

maverick maverick
12 gen 2018 13:29:48

Ho fatto quello che hai scritto. Riesco a connettermi al database con "mysql -u root -p". Inoltre i privilegi sono stati concessi. Ma l'errore è ancora presente.

Klevis Miho Klevis Miho
15 gen 2018 11:42:21

Ho scoperto che se cambio localhost con 127.0.0.1 nel mio wp-config.php, tutto funziona bene... sento che c'è un problema più grande qui

Craig Wayne Craig Wayne
1 giu 2018 10:03:26

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

betweenbrain betweenbrain
26 giu 2018 18:30:54
0

Nel mio caso, oltre al messaggio di errore menzionato in precedenza, ho ricevuto anche i seguenti avvisi:

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 charset predefinito per MySQL 8.0 è utfmb4.

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

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

20 ago 2018 23:50:05
0

Nel mio caso, ho dovuto fare ciò che eknows ha proposto nella sua soluzione (https://wordpress.stackexchange.com/a/313862/172520) E ovviamente abilitare l'accesso alla rete per MySQL sul mio Mac (usando MAMP Pro).

26 lug 2019 13:05:24
0

Potresti anche ottenere questo errore con alcune operazioni di WordPress se lo stai utilizzando su un multisite WordPress, in tal caso è necessario specificare un URL, ad es. --url=mysite.org

2 giu 2021 16:16:10