いやいや、ちょっとハマった。。
MANPで Apache 8888 MySQL 8889 に設定していて
CakePHP の database.php に以下の設定をしたら
public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost:8889', 'login' => 'root', 'password' => 'himitsu', 'database' => 'cake', 'prefix' => '', 'encoding' => 'utf8', );
bakeとブラウザで挙動が違う
問題点はポート
'host' => 'localhost:8889'
bake 繋がる
ブラウザ 繋がらない
'host' => 'localhost'
bake 繋がらない
ブラウザ 繋がる
色々Webをあさったけど、一番の解決策はポートを使わずソケット通信をすることらしい。
そこで以下のように直してみた。
public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'port' => '/Applications/MAMP/tmp/mysql/mysql.sock', 'login' => 'root', 'password' => 'himitsu', 'database' => 'cake', 'prefix' => '', 'encoding' => 'utf8', );
bake 繋がらない
ブラウザ 繋がる
まだ繋がらない、もう一つ工夫
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
これで見事繋がるようになりました。
ポートは関係なし、ソケット通信だから。
根本的な理由はコンソールとWebでコンフィグが異なってる
ことなんだろうなと思いつつ、作業をすすめる。
コメントを残す