it-swarm-ja.com

DrushはDrupalデータベースを開始(ブートストラップ)できませんでした-MySQLアクセス拒否エラー

Composerを使用してDrush 7をインストールし、Drupal 8および7をPHP 5.4.31 、mysql 5.5.38

Drushはモジュールとテーマをdl正常に処理しますが、モジュールをenしたい場合は、Drush was not able to start (bootstrap) the Drupal database.を使用できます

したがって、さらに調査した結果、これを行いました。

$ drush -v -d sql-cli
Starting Drush preflight. [0.02 sec, 1.15 MB]                        [preflight]
Cache HIT cid:                                                           [debug]
7.0-dev-commandfiles-0-87f720da39665f2c425de5e651f2ac4d [0.05 sec,
1.19 MB]
Bootstrap to phase 0. [0.2 sec, 3.19 MB]                             [bootstrap]
Bootstrap to phase 0. [0.28 sec, 3.19 MB]                            [bootstrap]
Found command: sql-cli (commandfile=sql) [0.28 sec, 3.19 MB]         [bootstrap]
Calling hook drush_sql_cli [0.56 sec, 3.21 MB]                           [debug]
Drush bootstrap phase : _drush_bootstrap_drupal_root() [0.56 sec,    [bootstrap]
3.22 MB]
Initialized Drupal 8.0-dev root directory at                            [notice]
/home/wavesailor/My_sites/bootstrap-business [0.62 sec, 3.52 MB]
Cache HIT cid:                                                           [debug]
7.0-dev-commandfiles-1-67528d048330f8c38ed66ea20e647906 [0.62 sec,
3.52 MB]
Drush bootstrap phase : _drush_bootstrap_drupal_site() [0.63 sec,    [bootstrap]
3.57 MB]
Initialized Drupal site default at sites/default [0.63 sec, 3.57 MB]    [notice]
Cache MISS cid:                                                          [debug]
7.0-dev-install_profile-66ecfeb9791a023150773849f1550c5d [0.64 sec,
3.57 MB]
Cache HIT cid:                                                           [debug]
7.0-dev-commandfiles-2-027a7d06ad1248d56c7499a21fb8d2df [0.65 sec,
3.57 MB]
Drush bootstrap phase : _drush_bootstrap_drupal_configuration() [0.65[bootstrap]
sec, 3.57 MB]
Calling proc_open(mysql --defaults-extra-file=/tmp/drush_ST3u9r --database=bootstrap_business --Host=127.0.0.1 --port=3306);
ERROR 1045 (28000): Access denied for user 'my_username'@'localhost' (using password: YES)
Returned from hook drush_sql_cli [0.87 sec, 3.72 MB]                     [debug]
Command dispatch complete [0.87 sec, 3.71 MB]                           [notice]
Peak memory usage was 5.21 MB [0.87 sec, 3.7 MB]                        [memory]
$

データベースに接続できないようですので、次のようにしました。

$ drush sql-connect
mysql --user=my_username --password=my_password --database=bootstrap_business --Host=127.0.0.1 --port=3306
$ mysql --user=my_username --password=my_password --database=bootstrap_business --Host=127.0.0.1 --port=3306
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 286
Server version: 5.5.38-0ubuntu0.12.04.1 (Ubuntu)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Drushで指定された接続文字列を使用して、手動でデータベースに接続できます。

それで、ホームディレクトリの.drushフォルダを削除しましたが、役に立ちませんでした。 Drupal 7と8の両方のサイトでこれを試しました。

そのため、drush 6(composer global require drush/drush:6.*)にダウングレードし、drushはDrupal 7サイトで問題なく動作しました。次に、drush 7(composer global require drush/drush:dev-master)にアップグレードすると、機能しなくなります再び

これを解決する方法に関するアイデアはありますか?

4
Wavesailor

この問題の答えは、ホームディレクトリに.my.cnfというファイルがあり、しばらく使用していたことです。 user=usernamepassword=old_passwordが含まれていました。ユーザー名は正しいが古いパスワードが含まれているため、これが問題の原因でした。

以前のDrushバージョン(<7.x)では、データベースへの接続にmysqlオプション--defaults-extra-file=/tmp/mysql_credentialsを使用していませんでした。そのため、古いバージョンのDrushを使用しても問題は発生しませんでした。

'--defaults-extra-file=/tmp/mysql_credentialsがホームディレクトリの.my.cnfに取って代わると思いましたが、そうではありません。

/tmp/...オプションを選択したときに、drushが-dファイルを削除しないようにするには、この問題をデバッグするのに役立つ1つの方法があります。

13
Wavesailor

drush st database | grep -i connectedを実行します。

結果が得られない場合は、(あなたの場合)settings.phpのdb資格情報が間違っている可能性があります。

上記のコマンドは、drushにインストールのステータス(st)を与え、結果をフィルタリングしてWordを含む文字列のみを含めるように指示しますdatabaseそして最後にこの結果をgrepに渡して、大文字と小文字を区別しないWordの検索を行います接続済みdrush stの詳細を理解するには、drush help stを実行してください。

1
sshrestha