WP CLI "Fehler beim Herstellen einer Datenbankverbindung" in localhost (MAMP)


13

Ich erhalte diese Fehlermeldung, wenn ich versuche, etwas mit WP CLI zu erstellen:

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.

Aber ich kann die Seite mit dem Link öffnen: http: // localhost: 8888 / projectname

Irgendeine Idee?

Antworten:


26

Gehen Sie in Ihre wp-config.phpund ändern Sie Ihre DB_HOSTin 127.0.0.1anstelle von localhost.

Der Kredit geht an Craig Wayne oben in den Kommentaren.


2
In MAMP Pro musste ich auch "Netzwerkzugriff auf MySQL zulassen" aktivieren, damit dies funktioniert.
Nick M

Ich habe es versucht, aber keine Hilfe. Ich benutze Bedrock Boilerplate. Ich ging immer wieder durch wp-config und .env Datei, ging immer wieder durch MAMPs Configs. Debuggte die Datei wb-db.php. Dann habe ich das # aus der Zeile DB_HOST in .env entfernt, und alles ist gut.
Tom

@ Tom Versuchen Sie dies unter tommcfarlin.com/installing-wp-cli-with-mamp, bevor Sie den Host wechseln wp-config.php. Es sollte funktionieren.
Maria Daniel Deepak

4

Stellen Sie sicher, dass Sie die MAMP PHP-Binärdatei verwenden. Sie können überprüfen, mit welcher PHP-Version WP CLI ausgeführt wird

php wp-cli.phar --info

Um das neueste MAMP PHP zu verwenden, müssen Sie Ihr Bash- oder Zsh-Profil ändern:

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

Stellen Sie sicher, dass Sie das Profil neu laden:

source ~/.bash_profile

Stellen Sie sicher, dass die Änderungen korrekt angewendet werden:

  php wp-cli.phar --info

1
Dieser erste Befehl gibt nur den FehlerCould not open input file: wp-cli.phar
Felix Eve

Haben Sie den Befehl im WordPress-Stammordner ausgeführt?
Eknows

Ja, aber es befindet sich keine wp-cli.pharDatei im Stammverzeichnis des WP-Verzeichnisses .
Felix Eve

Hier finden Sie weitere Informationen zur Installation von wp-cli.phar: ( wp-cli.org )
eknows

2
@FelixEve wenn während der Installation Sie umgezogen sind wp-cli.pharunter /usr/local/bin/wp, können Sie ausgeben wp --infostatt: die angezeigten PHP binarysollte derjenige unter dem WP - Installation sein.
PJ_Finnegan

4

Für mich bestand die Antwort darin, die Einstellung für DB_HOSTin 127.0.0.1:8889anstelle von localhostin zu ändern wp-config.phpund das Kontrollkästchen in den MySQL-Einstellungen auf "Netzwerkzugriff auf MySQL zulassen" zu aktivieren. Das Festlegen des Ports auf den Port, den MAMP Pro für die Datenbank verwendet, war das kritische fehlende Teil, das ich in den anderen Antworten hier nicht gesehen habe. YMMV.


0

Schritt 1: Überprüfen Sie, ob Ihr MySQL-Server ausgeführt wird. Schritt 2: Wenn ja, können Sie sich mit MySQL anmelden

mysql -u root -p

Geben Sie dann Ihr Passwort ein: (Sie müssen diesen Befehl vom Terminal aus verwenden) und verwenden Sie dann den folgenden Befehl, um sicherzustellen, dass die Datenbank vorhanden ist:

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

Bearbeiten Sie nun die Datei wp-config.php und suchen Sie nach

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

Starten Sie nun den Server neu und versuchen Sie, sich bei Ihrem WordPress-Dashboard anzumelden. Ich hoffe, es hilft.


"mysql -u root -p" gibt mir "Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Passwort: YES)"
Klevis Miho

Wenn Sie Ihre MySQL-Datenbank einrichten, müssen Sie ein Passwort eingegeben haben. Verwenden Sie dieses Passwort. Wenn Sie zum Zeitpunkt der Einrichtung der MySQL-Datenbank kein Kennwort konfiguriert haben, drücken Sie einfach die Eingabetaste anstelle eines Kennworts.
Außenseiter

Ich habe getan, was du geschrieben hast. Kann mit "mysql -u root -p" eine Verbindung zur Datenbank herstellen. Auch die Privilegien werden gewährt. Aber der Fehler ist immer noch da.
Klevis Miho

1
Ich habe festgestellt, dass, wenn ich localhost in meiner wp-config.php auf 127.0.0.1 ändere, alles gut funktioniert ... Ich habe das Gefühl, dass es hier ein größeres Problem gibt
Craig Wayne

1
Mit einer Neuinstallation von WordPress v3.6.9 und WP-CLI v1.5.1 funktionierte die Lösung von @CraigWayne perfekt.
Gehirn

0

In meinem Fall habe ich neben der oben genannten Fehlermeldung auch die folgenden Warnungen erhalten:

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

Laut dieser Frage tritt dieses Problem auf, weil der Standardzeichensatz für MySQL 8.0 ist utfmb4.

Tatsächlich könnte ich den Fehler durch ein Upgrade von MySQL 5.7 auf MySQL 8.0 replizieren

Ich habe das Problem gelöst, indem ich die Datenbank exportiert, auf MySQL 5.7 heruntergestuft und die Daten erneut importiert habe. Ich habe auch Tests mit MariaDB 10.3 durchgeführt und es funktioniert gut.


0

In meinem Fall musste ich das tun, was eknows in seiner Lösung vorgeschlagen hatte ( /wordpress//a/313862/172520 ) UND natürlich den Netzwerkzugriff auf MySQL für meinen Mac ermöglichen (mit MAMP Pro).


0

Es gibt zwei Teile davon, die zusammenarbeiten müssen:

- Sie müssen wechseln von localhostzu 127.0.0.1und die Portnummer am Ende hinzufügen. Für mich war es das 127.0.0.1:3306.

Die Portnummer befindet sich im MySQL-Bereich in Mamp.

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.