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");')
stat $(mysql_config --socket)
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');"