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

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

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

3回答

14211閲覧

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

smty

総合スコア33

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

1グッド

2クリップ

投稿2016/07/03 14:47

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のユーザー名自体が作れないと思うのですが、、、、

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

chanken2314👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

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

CakePHP

1app.defalt.php 2 'Datasources' => [ 3 'default' => [ 4 'className' => 'Cake\Database\Connection', 5 'driver' => 'Cake\Database\Driver\Mysql', 6 'persistent' => false, 7 'host' => 'localhost', 8 /** 9 * CakePHP will use the default DB port based on the driver selected 10 * MySQL on MAMP uses port 8889, MAMP users will want to uncomment 11 * the following line and set the port accordingly 12 */ 13 //'port' => 'non_standard_port_number', 14 'username' => 'my_app', 15 'password' => 'secret', 16 'database' => 'my_app', 17 'encoding' => 'utf8', 18 'timezone' => 'UTC', 19 'flags' => [], 20 'cacheMetadata' => true, 21 'log' => false, 22

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

投稿2016/07/04 00:37

KatsumiTanaka

総合スコア924

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smty

2016/07/04 03: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が触れます。ありがとうございました!!
smty

2016/07/04 03:28

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

2020/03/21 11:26

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

0

CakePHP v3.9.3

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

投稿2020/11/04 06:42

kahou

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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/03 14:52

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smty

2016/07/03 15:44

回答ありがとうございます。 ⑴を試してみました。 データベースのユーザーだけ消して、ユーザー名をmy_appに作り直してやってみたけど同じ結果になりました。 ⑵をしたいのですがCakePHPのsrcフォルダのModelフォルダのファイルを作ると言うことですか?
退会済みユーザー

退会済みユーザー

2016/07/03 15:49 編集

> データベースのユーザーだけ消して、ユーザー名をmy_appに作り直してやってみたけど同じ結果になりました。 どのような手順で、行いましたか?コマンドなどやったことを具体的に記述してください。具体的に書かれていないので、作業自体の手順が間違っていても指摘できません。
smty

2016/07/03 16:05

すみません。 rootユーザーでmysqlに入り、drop user cake_user@localhost をして消しました。 select user host, from mysql.user で確認済み。 use データベース名; でユーザー名を指定したいデータベースに切り替えて、 grant all on dotinstall_blog_cakephp.* to my_app@localhost identified by'パスワード'; をしました。
退会済みユーザー

退会済みユーザー

2016/07/03 16:07

やはり。FLUSH PRIVILEGES; が抜けていますね。 これを実行しないと権限は反映しません。
smty

2016/07/03 16:19

ありがとうございます。 grant all on flush privileges dotinstall_blog_cakephp.* to my_app@localhost identified by'cakephp_pass' ; でよろしいですか?
smty

2016/07/03 16: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 アクセス拒否ということは、一度権限を与えているからということですか?
smty

2016/07/03 17: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からデータベースには接続ができていない状況です。 もしこれ以外に解決策があるならよろしくお願いします。 ( もちろん自分でもなんとかできるように、いろいろ試してみます。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問