2

CI2/Doctrine2 をWildly Inaccurateから入手しました。使い始めようとしていますが、実際に作業する前に、すべてが機能することを確認したかったのです。ただし、コマンド ライン ツールを試すと、次のエラーが発生します。

$ ./doctrine orm:schema-tool:create

ATTENTION: This operation should not be executed in a production environment.

Creating database schema...

Warning: PDO::__construct(): [2002] Socket operation on non-socket (trying to connect via unix:///var/mysql/mysql.sock) in /Users/joris/Desktop/ci2_starter/application/libraries/Doctrine/DBAL/Driver/PDOConnection.php on line 36



  [PDOException]                                         
  SQLSTATE[HY000] [2002] Socket operation on non-socket  



orm:schema-tool:create [--dump-sql]

クリーン インストールされた MAMP Pro 2.0.1 でこれを実行しています。このエラーを修正するために何をすべきかよくわかりません..私はMySQLの内部(バックグラウンド)の仕組みについてあまり詳しくありません。誰かが私のためにこれを片付けてもらえますか? どうもありがとう。

アップデート:

MacBook-Pro-van-Joris-Ooms:~ joris$ sudo find / -name 'mysql.sock'
Password:
/Applications/MAMP/tmp/mysql/mysql.sock
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/private/var/mysql/mysql.sock
/private/var/mysql/mysql.sock/mysql.sock
4

1 に答える 1

4

MAMP は独自の mysql ソケットを使用しますが、CLI は /var/mysql/mysql.sock のデフォルトのものを使用します。これは、間違った PHP バージョン (MAMP バージョンではなく、デフォルトの MAC OS X バージョン) を実行していることを意味している可能性があります。Doctrine コマンドラインの問題も処理できるので、大したことではありません。したがって、いくつかのオプションがあります。

  1. MAMP php バージョンを使用して、MAC OS X php バージョンへのパスをプレフィックスとして付けて CLI ツールを起動してみてください。

    /Applications/MAMP/bin/php5.3/bin/php ./doctrine orm:schema-tool:create

  2. /var/mysql/mysql.sock から /Applications/MAMP//tmp/mysql/mysql.sock にあるはずの実際の Socket ファイルへのリンクを設定するだけです。したがって、MAMP が型を実行している間に端末に移動します (パスワードの入力を求められます):

    sudo ln -s /アプリケーション/MAMP//tmp/mysql/mysql.sock /var/mysql/mysql.sock

  3. MAMP 構成ファイルのいずれかで「/Applications/MAMP//tmp/mysql/mysql.sock」をすべて見つけて、/var/mysql/mysql.sock に変更し、実際に MySQL Socket のデフォルト アドレスを使用するようにします。 . ただし、これが機能するかどうかはテストしていません。

于 2011-09-27T11:53:28.033 に答える