質問: drushはdrupalデータベースを開始(ブートストラップ)できませんでした-mysqlアクセス拒否エラー composerを使用してdrush 7をインストールし、drupal 8および7をphp 5.4.31 、mysql 5.5.38drushはモジュールとテーマを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)にアップグレードすると、機能しなくなります再びこれを解決する方法に関するアイデアはありますか?
回答: この問題の答えは、ホームディレクトリに.my.cnfというファイルがあり、しばらく使用していたことです。 user=usernameとpassword=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つの方法があります。