web-dev-qa-db-fra.com

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

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

Mais je peux ouvrir le site avec le lien: http: // localhost: 8888/nom du projet

Une idée?

7
Klevis Miho

Allez dans votre wp-config.php et changez votre DB_Host en 127.0.0.1 au lieu de localhost.

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

17
Florin

Assurez-vous d'utiliser le binaire MAMP PHP. Vous pouvez vérifier quel CLI est en cours d'exécution avec PHP Version WP

php wp-cli.phar --info

Pour utiliser la dernière version de MAMP PHP, 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
2
eknows

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, je pourrais 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 à MySQL 5.7 et en réimportant les données. J'ai également exécuté des tests sur MariaDB 10.3 et cela fonctionne bien.

0
That Brazilian Guy

Étape 1: vérifiez si votre serveur mysql est en cours d'exécution Étape 2: si oui, vous pouvez vous connecter à mysql à l'aide de

mysql -u root -p

puis entrez votre mot de passe: (vous devez utiliser cette commande depuis 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;

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

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

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

0
maverick