WP CLI「localhost(MAMP)でのデータベース接続の確立エラー」


13

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.

しかし、リンクでサイトを開くことができます:http:// localhost:8888 / projectname

何か案が?

回答:


27

あなたに行くwp-config.phpとあなたが変更DB_HOST127.0.0.1localhostの代わりに。

クレジットはコメントの上のクレイグウェインに行きます。


2
MAMPプロでは、これを機能させるために「MySQLへのネットワークアクセスを許可する」をチェックする必要もありました。
Nick M

私はこれを試しましたが、助けはありませんでした。Bedrockボイラープレートを使用しています。私はwp-configと.envファイルを何度も繰り返し、MAMPs configsを何度も繰り返しました。wb-db.phpファイルをデバッグしました。次に、.envのDB_HOST行から#を削除しました。すべて正常です。
トム

このお試しください@Tom tommcfarlin.com/installing-wp-cli-with-mampをあなたがホストを変更する前にwp-config.php。うまくいくはずです。
マリアダニエルディーパック

5

私にとっての答えは、の設定DB_HOSTをの127.0.0.1:8889代わりにlocalhostに変更wp-config.phpし、MySQL設定で[MySQLへのネットワークアクセスを許可する]チェックボックスをオンにすることでした。MAMP Proがデータベースに使用しているポートにポートを設定することは、ここでの他の回答には見られなかった重要な欠落部分でした。YMMV。


4

必ずMAMP PHPバイナリを使用してください。あなたは、どのPHPバージョンのWP CLIが実行されているかを確認できます

php wp-cli.phar --info

最新のMAMP PHPを使用するには、bashまたはzshプロファイルを変更する必要があります。

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

必ずプロファイルをリロードしてください:

source ~/.bash_profile

変更が正しく適用されていることを確認します。

  php wp-cli.phar --info

1
その最初のコマンドはエラーを出しますCould not open input file: wp-cli.phar
Felix Eve

wordpressルートフォルダーでコマンドを実行しましたか?
知っている

はい。ただし、WPディレクトリのルートにwp-cli.pharファイルはありません。
Felix Eve

ここでは、wp-cli.pharのインストール方法に関する詳細情報を見つけることができます。(wp-cli.org
eknows

2
@FelixEveインストール中にのwp-cli.phar/usr/local/bin/wpに移動した場合は、wp --info代わりに発行できPHP binaryます。表示されるのは、WPインストールの下のものです。
PJ_Finnegan

0

ステップ1:mysqlサーバーが実行されているかどうかを確認しますステップ2:実行されている場合は、次を使用してmysqlにログインできます。

mysql -u root -p

次に、パスワードを入力します(ターミナルからこのコマンドを使用する必要があります)。次のコマンドを使用して、データベースが存在することを確認します。

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

次に、wp-config.phpファイルを編集して、

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

サーバーを再起動して、ワードプレスダッシュボードにログインしてみてください。お役に立てば幸いです。


「mysql -u root -p」と入力すると、「ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワード:YESを使用)」
Klevis Miho

mysqlデータベースを設定するときは、パスワードを入力しておく必要があります。そのパスワードを使用します。mysqlデータベースのセットアップ時にパスワードを設定しなかった場合は、パスワードの代わりにEnterキーを押してください。
異端者

私はあなたが書いたことをしました。「mysql -u root -p」を使用してデータベースに接続できます。また、権限が付与されます。しかし、エラーはまだそこにあります。
クレビスミホ

1
wp-config.phpでlocalhostを127.0.0.1に変更すると、すべてが正常に機能することがわかりました。ここに大きな問題があるように感じます
Craig Wayne

1
WordPress v3.6.9およびWP-CLI v1.5.1をクリーンインストールすると、@ CraigWayneのソリューションは完全に機能しました。
ブレイン間

0

私の場合、前述のエラーメッセージに加えて、以下の警告も表示されました。

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

この質問によると、この問題はMySQL 8.0のデフォルトの文字セットがであるために発生しますutfmb4

実際、MySQL 5.7からMySQL 8.0にアップグレードすることでエラーを再現できました

データベースをエクスポートし、MySQL 5.7にダウングレードして、データを再インポートすることで問題を解決しました。MariaDB 10.3でテストを実行したところ、問題なく動作しました。



0

これには、連携する必要のある2つの部分があります。

-あなたはから切り替える必要があるlocalhost127.0.0.1し、最後にポート番号を追加します。私にとって、それはでした127.0.0.1:3306

ポート番号はMampのMySQLパネルにあります。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.