web-dev-qa-db-ja.com

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

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.

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

何か案が?

7
Klevis Miho

あなたのwp-config.phpに入り、あなたのDB_Hostをlocalhostの代わりに127.0.0.1に変更してください。

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

17
Florin

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
2
eknows

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

1
Evan

私の場合、彼のソリューションで提案されていることを実行する必要がありました( https://wordpress.stackexchange.com/a/313862/17252 )そしてもちろん、MacのMySQLへのネットワークアクセスを有効にします( MAMP Proを使用)。

0
Cato

私の場合は、前述のエラーメッセージ以外に、以下のような警告も表示されます。

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

Step1:あなたの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');

今すぐサーバーを再起動し、あなたのワードプレスのダッシュボードにログインしてみてください。助けになれば幸いです。

0
maverick