CLI CLI "Erreur lors de l'établissement d'une connexion à la base de données" dans localhost (MAMP)


13

J'obtiens cette erreur lorsque j'essaie de créer quelque chose avec 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.

Mais je peux ouvrir le site avec le lien: http: // localhost: 8888 / projectname

Une idée?

Réponses:


27

Allez dans votre wp-config.phpet changez votre en DB_HOSTau 127.0.0.1lieu de localhost.

Le mérite revient à Craig Wayne ci-dessus dans les commentaires.


2
Dans MAMP Pro, je devais également cocher «Autoriser l'accès réseau à MySQL» pour que cela fonctionne.
Nick M

J'ai essayé mais sans aide. J'utilise un passe-partout Bedrock. Je suis allé à travers wp-config et .env fichier encore et encore, je suis allé à travers les configurations MAMPs encore et encore. Débogage du fichier wb-db.php. Ensuite, j'ai supprimé le # de la ligne DB_HOST en .env, et tout va bien.
Tom

@Tom Essayez ceci tommcfarlin.com/installing-wp-cli-with-mamp avant de changer d'hôte wp-config.php. Ça devrait marcher.
Maria Daniel Deepak

5

Pour moi, la réponse consistait à modifier le paramètre pour DB_HOSTau 127.0.0.1:8889lieu de localhostdans wp-config.phpet à cocher également la case "Autoriser l'accès réseau à MySQL" dans les paramètres MySQL. Obtenir le port défini sur le port que MAMP Pro utilise pour la base de données était la pièce manquante critique que je n'ai pas vue dans les autres réponses ici. YMMV.


4

Assurez-vous d'utiliser le binaire PHP MAMP. Vous pouvez vérifier avec quelle PHP Version WP CLI s'exécute

php wp-cli.phar --info

Pour utiliser le dernier PHP MAMP, vous devez modifier votre profil bash ou zsh:

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

Assurez-vous de recharger le profil:

source ~/.bash_profile

Assurez-vous que les modifications sont appliquées correctement:

  php wp-cli.phar --info

1
Cette première commande donne juste l'erreurCould not open input file: wp-cli.phar
Felix Eve

Avez-vous exécuté la commande dans le dossier racine wordpress?
eknows

oui, mais il n'y a pas de wp-cli.pharfichier à la racine du répertoire WP .
Felix Eve

Ici vous pouvez trouver plus d'informations sur l'installation de wp-cli.phar: ( wp-cli.org )
eknows

2
@FelixEve si lors de l'installation que vous avez déplacé wp-cli.pharsous /usr/local/bin/wp, vous pouvez émettre à la wp --infoplace: l'affichage PHP binarydevrait être celui sous votre installation WP.
PJ_Finnegan

0

Étape 1: vérifiez si votre serveur mysql fonctionne Étape 2: si oui, vous pouvez vous connecter à mysql en utilisant

mysql -u root -p

puis entrez votre mot de passe: (vous devez utiliser cette commande depuis le terminal) puis utilisez la commande suivante pour vous assurer que la base de données existe:

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

éditez maintenant le fichier wp-config.php et recherchez

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

Redémarrez maintenant le serveur et essayez de vous connecter à votre tableau de bord wordpress. J'espère que ça aide.


"mysql -u root -p" me donne "Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe: OUI)"
Klevis Miho

lorsque vous configurez votre base de données mysql, vous devez avoir entré un mot de passe. Utilisez ce mot de passe. Si vous n'avez pas configuré de mot de passe au moment de la configuration de la base de données mysql, appuyez simplement sur Entrée au lieu de n'importe quel mot de passe.
maverick

J'ai fait ce que tu as écrit. Peut se connecter à la base de données avec "mysql -u root -p". Les privilèges sont également accordés. Mais l'erreur est toujours là.
Klevis Miho

1
J'ai trouvé que si je change localhost en 127.0.0.1 dans mon wp-config.php, tout fonctionne bien ... j'ai l'impression qu'il y a un plus gros problème ici
Craig Wayne

1
Avec une installation propre de WordPress v3.6.9 et WP-CLI v1.5.1, la solution de @CraigWayne a parfaitement fonctionné.
entre le

0

Dans mon cas, outre le message d'erreur susmentionné, j'ai également reçu les avertissements ci-dessous:

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

Selon cette question , ce problème se produit car le jeu de caractères par défaut pour MySQL 8.0 est utfmb4.

En fait, j'ai pu reproduire l'erreur en passant de MySQL 5.7 à MySQL 8.0

J'ai résolu le problème en exportant la base de données, en rétrogradant vers MySQL 5.7 et en réimportant les données. J'ai également effectué des tests sur MariaDB 10.3 et cela fonctionne très bien.



0

Il y a deux parties qui doivent travailler ensemble:

- Vous devez passer de localhostà 127.0.0.1et ajouter le numéro de port à la fin. Pour moi, ça l'était 127.0.0.1:3306.

Le numéro de port se trouve dans le panneau MySQL dans Mamp.

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.