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

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

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

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

MySQL

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

0回答

433閲覧

LaravelのMigrationファイルをMigrate出来ません。

JunSawabe

総合スコア0

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

MySQL

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2020/11/26 08:02

前提・実現したいこと

Laravelのmigrationファイルをmysqlにmigrate出来る様にしたいです。

発生している問題・エラーメッセージ

php artisan migrate Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] Access denied for user 'dbuser'@'localhost' (using password: YES) (SQL: select * from information_schema.tables where table_schema = link and table_name = migrations and table_type = 'BASE TABLE') at /home/ubuntu/environment/link/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669 665| // If an exception occurs when attempting to run a query, we'll format the error 666| // message to include the bindings with SQL, which will make this exception a 667| // lot more helpful to the developer instead of just the database's errors. 668| catch (Exception $e) { > 669| throw new QueryException( 670| $query, $this->prepareBindings($bindings), $e 671| ); 672| } 673| Exception trace: 1 PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'dbuser'@'localhost' (using password: YES)") /home/ubuntu/environment/link/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70 2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=link", "dbuser", "dbpass", []) /home/ubuntu/environment/link/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70 Please use the argument -v to see more details.

該当のソースコード

データベースの接続はできています。 ubuntu:~/environment/link $ php artisan tinker Psy Shell v0.10.4 (PHP 7.3.24-3+ubuntu18.04.1+deb.sury.org+1 — cli) by Justin Hileman >>> DB::connection(); => Illuminate\Database\MySqlConnection {#3194}

試したこと

ネットで調べ.envやconfig/databaseのDB_DATABASE,DB_USERNAME,DB_PASSWORDをいじったのですがエラーのままです。

補足情報(FW/ツールのバージョンなど)

cloud 9
laravel 6.0
php 7.3

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

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

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

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

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

gpsoft

2020/11/26 11:07

エラーメッセージを見ると、 ・データベース名は link ・ユーザ名は dbuser ・パスワードは dbpass で接続しようとしていますが、 これらの値は、意図通りなのでしょうか? それとも、別の値を設定しているつもりなのに、上記のようになってしまう、ということですか?
gpsoft

2020/11/26 11:23

それと、 tinkerで、DB::connection()しただけでは、接続できたとは言え無さそうです。DB::select('SELECT 1'); とやってみて、エラーが出なければ接続に成功してると思います。 また、.envを修正しながら、tinkerで試行錯誤する場合は、.envを修正するたびに、tinkerを再起動した方が良さそうですよ(そうしないと、.envの修正が反映されない)。
JunSawabe

2020/11/26 11:54

ご回答頂きありがとうございます。 データベース名、ユーザー名、パスワード名は意図した通りです。 ご指摘頂いたtinkerで DB::select('SELECT 1')を試したところ Illuminate/Database/QueryException with message 'SQLSTATE[HY000] [1045] Access denied for user 'dbuser'@'localhost' (using password: YES) (SQL: SELECT 1)' と赤背景で返されてしまいました。
gpsoft

2020/11/26 12:17

なるほど〜 では、ターミナルで mysql -u dbuser -p と打ってみてください。 パスワードを聞かれるので、dbpass と入れます。 エラーが出なければ、MySQLのシェルが使えるようになるはずです。 次に SHOW DATABASES; と打ってみてください。 データベースの一覧が表示されます。 link はあるでしょうか? 無ければ、作りましょう。 CREATE DATABASE link; 既にある場合は、 SHOW GRANTS FOR `dbuser`@`localhost`; と打ってみて、表示された内容を教えて頂けますか? ※もし、MySQLのシェルが開けなかった場合は、(MySQLの)rootのパスワードが必要になると思います。
JunSawabe

2020/11/26 13:54

確認しましたところエラーとなってしまいました。 mysql -u dbuser -p Enter password: ERROR 1045 (28000): Access denied for user 'dbuser'@'localhost' (using password: YES) 私の勉強不足で申し訳ないのですが、rootのパスワードについて調べてもよくわかりません。
gpsoft

2020/11/26 14:38

cloud9のMySQLは、パスワード無しかもしれません。すみません、cloud9のこと、よく知らないんです。 ためしに、 mysql -u root で入れるかどうか、ご確認ください。 ダメなら、 mysql -u root -p として、パスワードを聞かれたら、Enterキーで行けるかも。 もし成功したら、 SELECT user, host FROM mysql.user; で、dbuserというユーザが存在するかどうか、確認できると思います。
JunSawabe

2020/11/27 03:12

返信が遅くなってしまい申し訳ございません。 mysql -u rootとmysql -u root -pは2つともエラーで弾かれてしまったので、sudo mysql -u rootで入りました。ご指摘を頂いたSELECT user, host FROM mysql.user;を試したところ、 user | host | +------------------+-----------+ | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | という結果でした。
gpsoft

2020/11/27 03:55

sudoが必要でしたか。気づいていただいて良かったです。 この結果から、dbuserというユーザが存在しないことが分かりますね。 ユーザの作り方は、ググったら見つかると思いますので、やってみてください。 (1)ユーザdbuserを作る (2)dbuserに、データベースを作成する権限など、必要な権限を与える(面倒くさいなら、全権を与える) (3)一旦ログアウトし、dbuserでログインしてからデータベースlinkを作る これでMigrationできるはず、だと思います。
JunSawabe

2020/11/27 04:47

無事、Migrationできました。 ありがとうございました。
gpsoft

2020/11/27 05:06

お疲れさまでした~
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問