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 can’t contact the database server at `localhost`. This could mean your host’s database server is down.

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

Dowolny pomysł?

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.


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.


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

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.


„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.



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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.