Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

【PHP】MAMPでCakePHPのbakeコマンド実行したらMySQLに接続出来なかった時の対応

久しぶりに記事更新です。 今回はCakePHPについてです。

MacMAMP環境でbakeコマンドでモデルを作成しようとした際、mysql.sockが No such file or directory となってしまい、MySQLに接続出来ませんでした。

色々調べてみた結果、こちらの記事に解決策が書いてありました。

方法としては、現在生成されているmysql.sockをdatabase.phpに指定してあげるというやり方です。

database.phpに以下のコードを付け足します。

<?php
public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'username',
    'password' => 'password',
    'database' => 'yourdatabase',
    'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock', // ここを付け足す
    'encoding' => 'utf8',
    );
?>

どうもCakephp2.x系からsocketの指定がデフォルトと違う場合にこのように設定するみたいです。

結構ハマりましたが解決出来て良かったです。

ちなみに、cakeコマンドのschema generateを使うとトレースみたいなことが出来るので、よく分からないエラーが出た時はこれも非常に便利です。以下のように実行します。

$ php cake.php schema generate

今回は以上です。それでは。

参考にさせていただいたサイト

MAMPのcakephpでDBにつながらない « Hello My World MAMP環境でのCakePHPのmysql.sockの指定方法 - 10rane.com