データベース接続を含むいくつかのDrushメソッドの実行に問題があります。無料版のMAMPを実行しています。
siまたはpml問題ありません
しかし、drush archive-dumpメソッドを実行すると、次のエラーメッセージが表示されます。
Database dump failed.
キャプチャを見てください:
問題はmysql.sockの場所にあるようです。私はここから解決策を見つけました: http://www.razorsql.com/docs/support_mysql_mac_mamp.html
ソケットの場所を変更する1つの方法は、mysql.sockの場所がデフォルトになるようにMAMP開始および停止スクリプトを編集することです。これを行うには、次のファイルを編集します。
/Applications/MAMP/bin/startMysql.sh
/Applications/MAMP/bin/stopMysql.sh
交換する
socket =/Applications/MAMP/tmp/mysql/mysql.sock
と
socket =/tmp/mysql.sock
やった
drush ard -v
何が起こっているのかを見るために。
Executing: mysqldump --result-file /tmp/drush_tmp_1352892897_50a381e13a71d/... --no-autocommit --single-transaction --opt -Q ... --Host=localhost --user=... --password=...
Database dump failed.
Mysqldumpコマンドをコピーしてコマンドラインにコピーし、Enterキーを押しました。
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect.
この後、www.razorsql.comから解決策を見つけた後、ソケットの問題を解決するためにいくつかの方法を試しました。
特に、drushを使用してリモートdbをプルし、ローカルにロードしようとしたときに(drush-sql-sync)、同様の問題が発生しました。私が得ていたエラーは:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
ここで起こっているのは、(少なくとも私の場合は)その場所にソケットファイルがないことです。簡単な解決策は、シンボリックリンクを作成することです。
cd /tmp
ln -s /Applications/MAMP/tmp/mysql/mysql.sock ./mysql.sock
その効果は、/ tmp/mysql.sockのすべての呼び出しを適切なMAMP固有のパスにルーティングすることです。
OSXをアップグレードした後も同じ問題が発生しました。私はいくつかのことを試しましたが、どれもうまくいきませんでした。そもそもすべてのシンボリックリンクが既に作成されていたため、次のエラーが発生し続けました。
Drushは、Drupalデータベースを起動(ブートストラップ)できませんでした。
Mysqlの問題だと思いましたが、次のように機能しました。~/.bash_profile
をもう一度編集して、次の行を追加しました。
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a Shell session *as a function*
export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5.4.4/bin:$PATH"
export PATH
export DRUSH_PHP="/Applications/MAMP/bin/php/php5.4.4/bin/php"
export PATH=/usr/local/bin:$PATH
ターミナルを再起動して出来上がり-drushは再び魅力のように動作します。 C13L0に感謝