Home > CakePHP 初心者メモ | Mac > MAMP環境CakePHP1.2のbakeでSQL接続エラー

MAMP環境CakePHP1.2のbakeでSQL接続エラー

  • Posted at 2008/08/09 11:45
  • Categories: CakePHP 初心者メモ, Mac
  • Tags: , , ,
  • hatena button
  • hatena count
  • save this page del.icio.us

自宅のローカルマシン(Mac)でローカルサーバー環境を作って、CakePHP開発を行おうと思ったのですが、いろいろエラーが出てしまったのでメモ。

Mac OS X にて、MAMPをインストールし、ローカルWEBサーバ+PHP+MySQLの環境を作りました。
そこでCakePHPを開発しようと思い、CakePHP1.2を入れてみたのですが、bakeからMySQLに接続できない。。。

まず、CakePHPを各種設定ファイル(core.php、database.php)を設定し、ページを開いたら、きちんと、

Cake is able to database.

と表示されます。
しかし、

# php cake.php bake

とbakeでモデルを作ろうと思うと、MySQLに接続できないのです。

まずは一つ目のエラー。

Use Database Config: (test/default)
[default] > 

Warning: mysql_connect(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /wwwroot/rnd-aff/cake/libs/model/datasources/dbo/dbo_mysql.php on line 118
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /wwwroot/rnd-aff/cake/libs/model/datasources/dbo/dbo_mysql.php on line 123
Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in /wwwroot/rnd-aff/cake/libs/model/datasources/dbo/dbo_mysql.php on line 131
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /wwwroot/rnd-aff/cake/libs/model/datasources/dbo/dbo_mysql.php on line 153
Error: Your database does not have any tables.

というエラーが出た。

解決方法としては、

# ln -s /Application/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

とやったらいいらしい。

で、もう一つのエラー。

Use Database Config: (test/default)
[default] >
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /wwwroot/rnd-aff/cake/libs/model/datasources/dbo/dbo_mysql.php on line 118
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /wwwroot/rnd-aff/cake/libs/model/datasources/dbo/dbo_mysql.php on line 123
Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in /wwwroot/rnd-aff/cake/libs/model/datasources/dbo/dbo_mysql.php on line 131
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /wwwroot/rnd-aff/cake/libs/model/datasources/dbo/dbo_mysql.php on line 153
Error: Your database does not have any tables.

この「Client does not support authentication protocol requested by server」というのは、パスワード暗号化の互換性で起きる問題ということらしい。

なので、以下のコマンドで解決するとのこと。

# SET PASSWORD FOR root@localhost = OLD_PASSWORD('password_str');

あと、他の解決方法としては、cakeのデータベース設定ファイル「database.php」にて、

var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'dbuser',
'password' => 'dbpassword',
'database' => 'databasename',
'prefix' => '');

とするところを、

 var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => '127.0.0.1',
'login' => 'dbuser',
'password' => 'dbpassword',
'database' => 'databasename',
'prefix' => '');

とループバックアドレスにする。もしくは、

 var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => '127.0.0.1:3306',
'login' => 'dbuser',
'password' => 'dbpassword',
'database' => 'databasename',
'prefix' => '');

と、ポートまで指定すると動くらしい。

検索したサイトではこれらの解決方法で動いたらしいが、私の環境ではどれをやっても動かなかった。。。

なので、あきらめて、セカンダリーサーバーのLinuxでコンソール使ってしこしこ開発しますです。。。(^^;)

こちらの記事もあわせてどうぞ!

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.multiburst.net/ElectricBrain/2008/08/mampcakephp12bakesql/trackback
Listed below are links to weblogs that reference
MAMP環境CakePHP1.2のbakeでSQL接続エラー from ElectronicBrain is eating BreakFast

Home > CakePHP 初心者メモ | Mac > MAMP環境CakePHP1.2のbakeでSQL接続エラー

Recent Posts
Sponsored Link
今読んでいる本
Recent Comments
Recent Trackbacks
RSS はてブ人気エントリー
楽天AD
Hatena Bookmark

この日記のはてなブックマーク数

feedburner

あわせて読みたい
Yahoo! ログール
feedmeter

フィードメーター - ElectronicBrain is eating BreakFast

BlogRanking

Trackword

Return to page top