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

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

自宅のローカルマシン(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/sometime-php/2008/08/mampcakephp12bakesql/trackback/
Listed below are links to weblogs that reference
MAMP環境CakePHP1.2のbakeでSQL接続エラー from Sometime PHP

Additional comments powered by BackType

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

Subscribe This Blog
Subscribe This Blog
FeedBurner

Search
Categories
Tag Cloud
Twitter Counter
Archives
My Other Blogs
Translator
Japanese flagEnglish flag

Return to page top