ショボ短歌会

こんにちは。
CakePHP2.4.10をダウンロード後の、「database.php」の設定についてお聞きしたいです。
当方Mac OSX、MAMPを使用しています。データベース管理はphpMyAdminで行っています。

phpMyAdminのユーザを以下のように設定しました。
ユーザ:cakephp
ホスト:localhost
パスワード:はい(任意のものに設定済み)
グローバル特権:USAGE
権限移譲:いいえ

MAMPのhtdocsフォルダ内にcakesのフォルダを移動後、
http://localhost:8888/cakephp/
を見て、エラーを確認すると、
CakePHP is NOT able to connect to the database.
Database connection "Mysql" is missing, or could not be created.
というエラーが出ています。

こちらのサイト(http://eight-smile.com/blog/web/cakephp%E3%82%92 …)では、database.php.defaultの拡張子をdatabase.phpに変更後、
・login
・password
・database
のみを書き換えればよいとのことだったので、
・'login' => 'cakephp'
・'password' => '任意のパスワード'
・'database' => 'mini_bbs'(phpMyAdminでテーブル作成済)
としました。
それでもエラーは消えないです。どうすればよいのでしょうか?お教え下さい。

A 回答 (2件)

うーん。

database.phpを設置したにも関わらず
「CakePHP is NOT able to connect to the database.」
が出るんならやっぱりdatabase.phpの設置ミスか中身のミスかなぁ。
MySQLの待ち受けやポート開放、ならびにPHPにmysql接続機能が入っているかは
phpMyAdminが出来ていることから問題ないと思われる。

> cakephpがmini_bbsへの読み書きが本当にできるようになっているかどうかを
> 確認する方法を教えていただければ幸いです。
それは普通にphpMyAdminでcakephpユーザでログインしてみればいいです。
少なくとも読み込めるならばログイン後のデータベースツリー一覧に出てきます。
書き込みできるかは実際にCREATE TABLEとかしてみないと駄目かも。

閑話休題。
今ちらっとぐぐってみたらPHPにpdoエクステンションが無い状態もこのエラーが表示されるらしいかも?
こちら(「Mac PHP PDO」とかでぐぐるとか)でも情報を集めてみるといいかも。
この辺の説明しとくと、PHPにはMySQLに接続するために主に3つの手段がある。
mysqlエクステンションとmysqliエクステンションとpdo_mysqlドライバーだ。
このうち、phpMyAdminはmysqlエクステンションを用いるので、
上でphpMyAdminで繋げられてるから接続は問題ないはずという根拠は崩れる事になる。
mysqlエクステンションが入っててpdoエクステンションとpdo_mysqlドライバーが入ってないという可能性があるからだ。
    • good
    • 0

> CakePHP is NOT able to connect to the database.


これはCakePHPがMySQLを見つけることができない(つまり、接続できた後にユーザー名やパスワードが間違っているわけでもユーザーがデータベースにアクセス権限がないのでもない)のでdatabase.phpを設置する前だったらうなずける動作だ。

> それでもエラーは消えないです。
database.phpを設置したにも関わらず、「同じエラーが出る」のか、「とにかくまだ正常じゃないけどエラーメッセージは変わった」なのかを教えて貰えないか?

それが同じままならdatabase.phpの設置方法が悪い、database.phpの中身を書き換えたけどコメントアウトされている、などが考えられる。
エラーが「認証できません」とか「アクセス権限がありません」とかだったらMySQL側な感じだ。ユーザー名とパスワードの組があっているか、ユーザーcakephpがデータベースmini_bbsを読み書きできるか確認しよう。

この回答への補足

ていねいなご回答、痛み入ります。
database.php設置後は同じエラーが出ます。

ユーザcakephpがデータベースmini_bbsの読み書きができるかどうか、というところが怪しいかもしれません。
なので、「データベースに固有の特権」の項目に「mini_bbs」を追加し、特権をALL PRIVILEGESとしました。
しかし、エラーメッセージは変わらず…。
恐縮ですが、cakephpがmini_bbsへの読み書きが本当にできるようになっているかどうかを確認する方法を教えていただければ幸いです。

補足日時:2014/08/18 21:42
    • good
    • 0
この回答へのお礼

ありがとうございます。
php -mコマンドで、拡張モジュールを確認したところ、PDOモジュールは入っていて、「???」となっていました…。
改めてdatabase.phpをFinderで検索してみたところ、内容がデフォルト値に設定されているものを発見しました。
どうやら、違う場所のdatabase.phpをいっしょうけんめい変更していたようです(アホ!)。
しかし、ユーザ設定も違っていたようなので、ご指摘いただいて本当に助かりました。
ありがとうございます!

お礼日時:2014/08/19 13:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!