2013-10-11 29 views
7

cakeコマンドラインツールからモデルコードを生成しようとしていました。しかし、この問題があります。データベース接続「Mysql」が見つかりません。mysql.sockが見つかりません

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

Error: Database connection "Mysql" is missing, or could not be created. (although it's showing that mysql database is connected at localhost in cakephp directory) 

私はMAMPを使用しています。

私は多くを検索し、いくつかの解決策を見つけました。たとえば、これは CakePHP: No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)

です。また、mysql.sockのシンボリックリンクを作成することもできます。

/Applications/MAMP/tmp/mysql/mysql.sock (not present in directory) 

しかし、私は何かをする前に、問題がにmysql.sockファイルがこのディレクトリに存在しないからです。私はMAMPを再インストールしようとしましたが、mysql.sockはまだありません。

この問題を解決するにはどうすればよいですか?私自身のmysql.sockファイルを作成することはできますか?

編集:それは、MySQLに来るとき私のデシベルの設定

public $default = array(
    'datasource' => 'Database/Mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'root', 
    'password' => 'root', 
    'database' => 'db_name', 
    'prefix' => '' 
); 
+0

あなたのデータベース構成パラメータを投稿してください。 – arilia

+0

私の質問を編集しました。私はそのデータベースが問題なく接続されていると言わなければなりません。しかし、cakephp cliでモデルを作成するには、私が言いましたmampフォルダにないmysql.sockを使います。 – ManinGreen

+0

localhostの代わりに127.0.0.1を試すとどうなりますか? – arilia

答えて

8

MAMPは奇妙です。シンボリックリンクを見つける場所が分かるようにシンボリックリンクを設定する必要があります。ような何か:

sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

+0

返事をありがとう。私はシンボリックリンクを作成しましたが、私の問題は解決されませんでした。 – ManinGreen

+1

php-cliで使用するには、シンボリックリンクを作成した後、php.iniファイルを編集します: 'pdo_mysql.default_socket =/tmp/mysql.sock'、' mysql.default_socket =/tmp/mysql.sock'、 'mysqli。 default_socket =/tmp/mysql.sock' – Seb33300

+0

私の場合、ファイルは全く作成されません。ファイルを生成するためにmampを取得する方法を教えてください。 phpmyadminは完全にうまく動作します –

3

検索し、私はようやく私の問題を解決するために管理多くのことをしようとした後。チャック・バージェスは、上記の答えは、問題を解決することができますが、私のシナリオでは、私は時にmysql.sockファイルを見ることができなかったことを少し異なっていた:

/Applications/MAMP/tmp/mysql/mysql.sock 
私は私にmysql.sockが行方不明になったと思っ

が、実際にそれがでしたそこに隠されていた(それはすごい!私はCLIを使用してそのフォルダに行き、それを見た)。私はMACと '。'で始まるファイルを使用しています。通常はHIDDENですが、なぜmysql.sockが隠されていたのかわからないので、データベース設定ファイルに1つのパラメータ(unix_socket)を追加して問題を解決しました。

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock' 
+0

と同じではなく、MAMPを目指しています。隠れていて、cli経由で見ることができます。しかし、私はまだunix_socketを追加するときに私は接続されていません。 –

0

私はこの週末全体に苦労して、最終的に解決しました。 php.iniが存在しない "extensions dir"を指していることがわかります。 phpinfo()ファイルを作成し、このフィールドの値を見て:私はMAMPのPHPインストールしたフォルダ内の値とは異なる無デバッグ非ZTS-20131226フォルダがあることに気づい extensions_dir

phpinfo()に示されています。私がしたことは、このフォルダをクローンし、その名前をphpinfo()の値に変更したことです。おそらくあなたはphp.iniファイルを修正することができましたが、私は望んでいませんでした。

あなたの問題は解決していますが、私の見解は違っています。この回答を投稿して、今後のGoogle社員が同様の問題を抱えるのを助けてください。

これが役に立ちます。

1

私のケースでは、間違ったバージョンのPHPを呼び出していたからです。私。私は/usr/bin/phpを使用していましたが、MAMP ProのPHPは/Applications/MAMP/bin/php/php5.3.29/bin/php

+0

あなたはどうやってこれをやればいいですか – Monclee

1

私の場合は、電源が切れた直後に表示されます。そこで私は/Applications/MAMP/tmp/mysql/mysql.pidファイルを削除し、MAMPを再起動することで修正しました。

+0

これは私のマンプ:-( – rcpfuchs

+0

も壊れました。 –

0

MAMPでフォルダ内のシンボリックリンクを作成するの/ var/mysqlの/:

sudoのLN -n /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

関連する問題