質問: pdoexception:sqlstate [hy000] [2002] _registry_check_code()にそのようなファイルまたはディレクトリはありません drushはmampで実行されています、php 5.6.6。内部/volumes/doxy/htdocs/omegadoen/sites/all/themes/omega走る:drush omega-wizard 私は得ます: 例外の処理中にスローされたキャッチされなかった追加の例外。 元の pdoexception:sqlstate [hy000] [2002] drupal_is_denied()にはそのようなファイルやディレクトリはありません(/volumes/doxy/htdocs/omegadoen/includes/bootstrap.incの1917行目)。 追加 pdoexception:sqlstate [hy000] [2002] _registry_check_code()にそのようなファイルまたはディレクトリはありません(/volumes/doxy/htdocs/omegadoen/includes/bootstrap.incの3169行目)。 回復できないエラーのため、drushコマンドが異常終了しました。 [エラー]今何?
回答: 簡単にするために、詳細パラメータとデバッグパラメータを使用して_drush status_を確認します。_drush -vd status _別のプロファイルを使用している場合は、_-l http://foo_として含めることを忘れないでください。それでも問題が解決しない場合は、drupalのブートストラップに問題があります。sql接続が機能しているかどうかを最初に確認します。_drush sql-cli _そうでない場合は、drupal設定ファイルでdb資格情報を確認してください。その場合、ソケットを介したsql接続に問題があります。したがって、mampでは次のことを行う必要があります。 my.cnfのsocketの値を確認します(メニュー:ファイル/テンプレートの編集)。通常は次のように設定されます。 _socket = /applications/mamp/tmp/mysql/mysql.sock _ mysqlがこのファイルを見つけられるかどうかを再確認します。 _$ mysql_config --socket /applications/mamp/tmp/mysql/mysql.sock _ phpに正しい_mysql.sock_設定があるかどうかを再確認します。 _$ php -i | grep mysql.default_socket _ ソケットを_/tmp_にリンクし、それが役立つかどうかを確認します。 _sudo ln -s /applications/mamp/tmp/mysql /var/mysql _ ソケットファイルをテストします。 _mysql --socket=/var/mysql/mysql.sock _ それでも問題は?次の設定を_$databases_に追加します。 _$databases['default']['default'] = array( // ... 'unix_socket' => '/var/mysql/mysql.sock', _ トラブルシューティング 試してください:_drush sqlq "select @@version_comment limit 1"_ 試してください:drush ev "database::getconnection('default', 'default');" 試してください:mysql --socket=$(php -r 'echo ini_get("mysql.default_socket");') unixソケットの権限を確認してください:stat $(mysql_config --socket) デバッグ:os xでは_sudo dtruss -fn mysqld_、linuxではstrace xdebugでデバッグ: echo '<?php xdebug_start_trace("/tmp/foo.log");' > init.php drush -c init.php ev 'database::getconnection("default", "default");' または_xdebug.show_exception_trace=1_に_xdebug.ini_を設定します mysqlの設定を確認します。 echo '<?php phpinfo();' > init.php drush -c init.php ev 'database::getconnection("default", "default");' | grep mysql 実行:php -r "new pdo('mysql:host=localhost;port=3306;charset=utf8;dbname=dbname', 'root', 'root');" してみてください レジストリを再構築