WP CLI „Błąd nawiązywania połączenia z bazą danych” w localhost (MAMP)

13

Ten błąd pojawia się, gdy próbuję utworzyć coś za pomocą WP CLI:

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.

Ale mogę otworzyć stronę z linkiem: http: // localhost: 8888 / nazwa projektu

Dowolny pomysł?

Klevis Miho
źródło

Odpowiedzi:

27

Wejdź do swojego wp-config.phpi zmień DB_HOSTna 127.0.0.1zamiast localhost.

Podziękowania należą się Craigowi Wayne'owi powyżej w komentarzach.

Florin
źródło
2
W MAMP Pro musiałem również zaznaczyć „Zezwól na dostęp sieciowy do MySQL”, aby to zadziałało.
Nick M
Próbowałem tego, ale nie pomogłem. Używam płyty kotłowej Bedrock. Ciągle przeszukiwałem pliki wp-config i .env, przeszedłem przez konfiguracje MAMPs w kółko. Debugowano plik wb-db.php. Następnie usunąłem # z wiersza DB_HOST w .env i wszystko jest w porządku.
Tom
@Tom Wypróbuj ten tommcfarlin.com/installing-wp-cli-with-mamp przed zmianą hosta wp-config.php. To powinno działać.
Maria Daniel Deepak,
5

Dla mnie odpowiedź została zmieniając ustawienie na DB_HOSTcelu 127.0.0.1:8889zamiast localhostw wp-config.php, a także zaznaczając pole „Zezwalaj na dostęp do sieci MySQL” w ustawieniach MySQL. Ustawienie portu jako portu używanego przez MAMP Pro dla bazy danych było krytycznym brakującym elementem, którego nie widziałem w innych odpowiedziach tutaj. YMMV.

Evan
źródło
4

Upewnij się, że używasz pliku binarnego PHP MAMP. Możesz sprawdzić, z którą wersją PHP WP CLI działa

php wp-cli.phar --info

Aby użyć najnowszego MAMP PHP, musisz zmodyfikować swój profil bash lub zsh:

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

Załaduj ponownie profil:

source ~/.bash_profile

Upewnij się, że zmiany zostały zastosowane poprawnie:

  php wp-cli.phar --info
eknows
źródło
1
To pierwsze polecenie po prostu daje błądCould not open input file: wp-cli.phar
Felix Eve
Czy uruchomiłeś polecenie w folderze głównym Wordpress?
eknows
tak, ale nie ma wp-cli.pharpliku w katalogu głównym katalogu WP .
Felix Eve
Tutaj można znaleźć więcej informacji na temat instalacji wp-cli.phar: ( wp-cli.org )
eknows
2
@ FelixEve, jeśli podczas instalacji przeprowadziłeś się wp-cli.pharpod /usr/local/bin/wp, możesz wp --infozamiast tego wydać : wyświetlany PHP binarypowinien być ten w ramach instalacji WP.
PJ_Finnegan
0

Krok 1: Sprawdź, czy serwer MySQL działa. Krok 2: Jeśli tak, możesz zalogować się do MySQL przy użyciu

mysql -u root -p

następnie wprowadź hasło: (musisz użyć tego polecenia z terminala), a następnie użyj następującego polecenia, aby upewnić się, że baza danych istnieje:

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

teraz edytuj plik wp-config.php i wyszukaj

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

Teraz zrestartuj serwer i spróbuj zalogować się do pulpitu Wordpress. Mam nadzieję, że to pomoże.

politycznie niezależny
źródło
„mysql -u root -p” daje mi „Odmowa dostępu dla użytkownika„ root ”@„ localhost ”(przy użyciu hasła: TAK)”
Klevis Miho
podczas konfigurowania bazy danych mysql musisz podać hasło. Użyj tego hasła. Jeśli nie skonfigurowałeś hasła podczas konfigurowania bazy danych mysql, po prostu naciśnij enter zamiast hasła.
Maverick
Zrobiłem to, co napisałeś. Może połączyć się z bazą danych za pomocą „mysql -u root -p”. Przyznawane są również uprawnienia. Ale błąd nadal występuje.
Klevis Miho,
1
Przekonałem się, że jeśli zmienię localhost na 127.0.0.1 w moim wp-config.php, wszystko działa dobrze ... mam wrażenie, że jest tu większy problem
Craig Wayne
1
Dzięki czystej instalacji WordPress v3.6.9 i WP-CLI v1.5.1 @CraigWayne rozwiązanie działało idealnie.
betweenbrain
0

W moim przypadku oprócz wyżej wymienionego komunikatu o błędzie otrzymałem również poniższe ostrzeżenia:

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

Zgodnie z tym pytaniem ten problem występuje, ponieważ domyślnym zestawem znaków dla MySQL 8.0 jest utfmb4.

W rzeczywistości mógłbym zreplikować błąd poprzez aktualizację z MySQL 5.7 do MySQL 8.0

Rozwiązałem problem, eksportując bazę danych, obniżając wersję do MySQL 5.7 i ponownie importując dane. Przeprowadziłem również testy na MariaDB 10.3 i działa dobrze.

Ten brazylijski facet
źródło
0

W moim przypadku musiałem zrobić to, co zaproponował eknows w swoim rozwiązaniu ( https://wordpress.stackexchange.com/a/313862/172520 ) ORAZ oczywiście umożliwić dostęp sieciowy do MySQL na moim komputerze Mac (za pomocą MAMP Pro).

Cato
źródło
0

Istnieją dwie części, które muszą ze sobą współpracować:

- Trzeba przejść z localhostaby 127.0.0.1dodać numer portu na końcu. Dla mnie tak było 127.0.0.1:3306.

Numer portu znajduje się w panelu MySQL w Mamp.

wprowadź opis zdjęcia tutaj

Dorsz
źródło