質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.77%

CakePHP3系のインストールに関して

解決済

回答 3

投稿

  • 評価
  • クリップ 2
  • VIEW 11K+

score 33

cakephpをcomposerを使ってインストールしました。

cakephp自体はローカル環境にインストールは出来て、cakephpのサーバーにアクセスするとデータベースに接続ができないとのエラーが出ます。

以下エラー文。

CakePHP is NOT able to connect to the database.

Connection to database could not be established: SQLSTATE[HY000] [1045] Access denied for user 'my_app'@'localhost' (using password: YES)

そもそもデータベースを作るときのユーザー名にはmy_appなんてつけていませんし、my_appのユーザー名自体が作れないと思うのですが、、、、

解決策がわかる方、ご教授のほどお願いします。。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

CakePHP3.xでは、データベースへの接続情報を./config/app.phpに記載します
インストール直後は、./config/app.default.phpだけがあるので、これをapp.phpにコピーして内容を編集します
具体的には、以下の箇所がDBへの接続情報となります

app.defalt.php
    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            /**
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => 'my_app',
            'password' => 'secret',
            'database' => 'my_app',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,


デフォルトとテスト用の2種類の接続情報が設定可能ですが、とりあえずデフォルトのほうだけご自身の環境に合わせて設定すればよいと思います

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/04 12:27

    昨日から引き続きありがとうございます!!

    configにはapp.default.phpもapp.phpもすでにあったので?、app.phpの方を言われた通りに編集しました。

    'Datasources' => [
    'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Mysql',
    'persistent' => false,
    'host' => 'localhost',
    /**
    * CakePHP will use the default DB port based on the driver selected
    * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
    * the following line and set the port accordingly
    */
    //'port' => 'non_standard_port_number',
    'username' => 'my_app',
    'password' => '*****',
    'database' => 'データベース名',
    'encoding' => 'utf8',
    'timezone' => 'UTC',
    'flags' => [],
    'cacheMetadata' => true,
    'log' => false,

    passwordとdetabaseを自身のデータベースの情報に書き換えると、解決しました!!

    やっとこれでcakephpが触れます。ありがとうございました!!

    キャンセル

  • 2016/07/04 12:28

    昨日、遅い時間にもご教授してくれた方もありがとうございました!!

    キャンセル

  • 2020/03/21 20:26

    cakePHP4

    app.default.phpからapp_local.php という名前に変わってる??
    それを変更したらできました。

    キャンセル

0

Connection to database could not be established: SQLSTATE[HY000] [1045] Access denied for user 'my_app'@'localhost' (using password: YES) 

これは、CakePHPに設定されたDBへの接続設定が ユーザー名 = my_app , ホスト名 = localhost に設定されているが、MySQLのユーザーに my_app というユーザーがいない、またはmy_appというユーザーが設定されていてもパスワードが間違っているような場合に表示されるメッセージです。

対処法としては、

① MySQLにmy_appユーザーを追加する
② CakePHPの接続設定にMySQLに接続可能なユーザー、パスワードを設定する

のいずれかの方法になります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/04 01:31

    一度やったらQuery OKと出たので、確認すると、cakephp側のエラーが変わらなかったので、mysql -u my_app -p → use データベース →FLUSH PRIVILEGESを行ったら、
    以下のエラー文が出ました。
    Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
    アクセス拒否ということは、一度権限を与えているからということですか?

    キャンセル

  • 2016/07/04 01:37 編集

    まさか、rootの権限も削除しちゃったんじゃないです?
    と思ったら違った↓
    http://oshiete.goo.ne.jp/qa/2993400.html

    キャンセル

  • 2016/07/04 02:59

    +---------------------------------------------------------------------------------------------------------------+
    | Grants for my_app@localhost |
    +---------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'my_app'@'localhost' IDENTIFIED BY PASSWORD '*******' |
    | GRANT ALL PRIVILEGES ON `dotinstall_blog_cakephp`.* TO 'my_app'@'localhost' |
    +--------------------------

    なんどもすみません。
    参考サイトも貼っていただきありがとうございました。

    一応、上の通り権限は与えれているかと思います。

    が一向にcakephpからデータベースには接続ができていない状況です。

    もしこれ以外に解決策があるならよろしくお願いします。

    ( もちろん自分でもなんとかできるように、いろいろ試してみます。)

    キャンセル

0

CakePHP v3.9.3

C:\xampp\htdocs\mycakeapp\config\app_local.php
'username' => 'root',
'password' => '',
'database' => 'mydata',

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.77%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る