2012-03-20 23 views
0

データベースを作成してcake bake my_projectを使用してプロジェクトを作成しました。プロジェクトディレクトリ内でcake bake allフォームを試すと、Mysqlに関するエラーが表示されます。ブラウザからプロジェクトを見ると、データベースに接続するなど、すべてが緑色に点灯します。ケーキPHPビルドモデル

Warning Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in [/Users/billy/Documents/projects/cakephp/lib/Cake/Model/Datasource/Database/Mysql.php, line 160] 

このエラーについてはどうすればよいですか?


EDIT:追加の関連する構成の詳細(--info PHP | grepのmysqlの)

私は本当にここで何を探すべきかわからないが、多分誰かがい...

$ php --info |grep mysql 
Configure Command => '/var/tmp/apache_mod_php/apache_mod_php-53.3.1~2/php/configure' '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-dependency-tracking' '--sysconfdir=/private/etc' '--with-apxs2=/usr/sbin/apxs' '--enable-cli' '--with-config-file-path=/etc' '--with-libxml-dir=/usr' '--with-openssl=/usr' '--with-kerberos=/usr' '--with-zlib=/usr' '--enable-bcmath' '--with-bz2=/usr' '--enable-calendar' '--with-curl=/usr' '--enable-exif' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/BinaryCache/apache_mod_php/apache_mod_php-53.3.1~2/Root/usr/local' '--with-png-dir=/BinaryCache/apache_mod_php/apache_mod_php-53.3.1~2/Root/usr/local' '--enable-gd-native-ttf' '--with-ldap=/usr' '--with-ldap-sasl=/usr' '--enable-mbstring' '--enable-mbregex' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-mysql-sock=/var/mysql/mysql.sock' '--with-iodbc=/usr' '--enable-shmop' '--with-snmp=/usr' '--enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr' '--enable-zend-multibyte' '--enable-zip' '--with-pcre-regex=/usr' 
mysql 
Client API version => mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $ 
mysql.allow_local_infile => On => On 
mysql.allow_persistent => On => On 
mysql.connect_timeout => 60 => 60 
mysql.default_host => no value => no value 
mysql.default_password => no value => no value 
mysql.default_port => no value => no value 
mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock 
mysql.default_user => no value => no value 
mysql.max_links => Unlimited => Unlimited 
mysql.max_persistent => Unlimited => Unlimited 
mysql.trace_mode => Off => Off 
mysqli 
Client API library version => mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $ 
mysqli.allow_local_infile => On => On 
mysqli.allow_persistent => On => On 
mysqli.default_host => no value => no value 
mysqli.default_port => 3306 => 3306 
mysqli.default_pw => no value => no value 
mysqli.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock 
mysqli.default_user => no value => no value 
mysqli.max_links => Unlimited => Unlimited 
mysqli.max_persistent => Unlimited => Unlimited 
mysqli.reconnect => Off => Off 
mysqlnd 
mysqlnd => enabled 
Version => mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $ 
PDO drivers => mysql, sqlite, sqlite2 
pdo_mysql 
Client API version => mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $ 
pdo_mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock 

編集:詳細情報

私は@ 0k32からの提案を試みましたが、残念ながらそれは私のためには機能しませんでした。私はソフトをXAMPPフォルダから/usr/bin/phpにリンクし、それがwhich phpの正しいものであることを確認しました。私はその後、php --info | grep sockを行なったしました:MySQLの正しいバージョンが起動していることを示唆しているようだ

MYSQL_SOCKET => /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock 
mysql.default_socket => /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock => /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock 
MYSQLI_SOCKET => /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock 
mysqli.default_socket => /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock => /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock 

。それでも私はまったく同じエラーが発生しています。

答えて

2

この問題は、Apacheのphpモジュールとコマンドラインphpで使用されているさまざまな設定ファイル(php.ini)のために表示される可能性があると思います。 mysql接続のデフォルト設定は、これらの設定で異なる場合があります。 Apacheの出力phpinfo()とコマンドラインのphp --infoを比較します。

更新:あなたのケースでは

あなたがMacOSの上にあり、MAMP/MAMPのPROを使用しているようです。私もそうです。私も同じ問題がありました。 私のソリューションは非常に簡単でした。私はMAMPのPHPバイナリへのシンボリックリンクを、デフォルトのPHP CLIバイナリを置き換える:

$ sudo mv /usr/bin/php /usr/bin/php_default 
$ sudo ln -s /Applications/MAMP/bin/php/php5.3.6/bin/php /usr/bin/php 

MAMPのPHPは、デフォルトで/Applications/MAMP/tmp/mysql/mysql.sock経由のMySQLに接続しているとのMacOSのデフォルトコマンドラインのPHPが/var/mysql/mysql.sockを使用しようとしています。

とにかく私はウェブとcliの両方に同じ設定で同じPHPを使用することをお勧めします。

更新:

賢くソリューションは、デフォルトのPHPを交換するだけでなく、PATHにMAMPのPHPバイナリへのパスを追加しないだろう。あなたのために~/.bash_profile

export PATH=/Applications/MAMP/bin/php/php5.3.6/bin:$PATH 

必要に応じて修正してください。 端末を再度開くか、source ~/.bash_profileを実行してください。次に、which phpを実行して、使用しているPHPを確認することができます。 MAMPのphpを指すはずです。

+0

私はこれを解決する前に、仮想マシンにubuntuサーバーをインストールすることで解決しましたが、あなたのように機能するようにしたいと思います。私はこれを行かせます。ありがとう、〜) –

+0

私はXAMPPを使用していますが、私はMAMPが何であるかわかりませんが、クロスプラットフォームなので、私が使用しているMac版のXAMPPを想定しています。 –

+0

私は自分の答えを更新しました。 – ok32

関連する問題