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

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

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

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

Laravel

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

807閲覧

LaravelでMySQLに接続する方法

YO14

総合スコア45

MySQL

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

Laravel

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/04/14 06:17

やりたいこと

https://qiita.com/yyokii/items/c7c98d467239dda2a59d
https://qiita.com/33yuki/items/f05bf5e829a9a05616f7

これらの記事を参考に、LaravelでMysqlに接続し、テーブル作成したいです。Laravel超初心者です。

できていること

・Composerインストール済み
・Laravelプロジェクト作成済み
・ローカル環境でのLaravel起動済み(localhostにアクセスすると、Laravelのトップページが表示)
php artisan make:migration create_hoges_table --create=hoges
を実行して、database/migrations に、マイグレーションファイル作成済み

できていないこと

php artisan migrate を実行
⇒エラー発生
SQLSTATE[HY999][1045]Acces denied for user 'root'@'localhost' (using password: YES)

疑問点

・起動しているMySQLのユーザーには、rootがいて、グローバル特権:ALL PRIVILEGES となっているのにアクセスできないのはなぜなのか
・接続しようとしているサーバーは、手元で起動しているMysqlとなっているのか?全く違うところに接続しようとしていないか?接続先確認はどうやればいいのか?
・ 起動しているサーバー内に、予めデータベースを作っておく必要はないのか?作成されたマイグレーションファイルの中身を見るに、テーブルのカラムをcreateするような内容であった。
・マイグレーションファイル内に「どのDBに」という指示が書かれていないように見えるが、書き足す必要があるのか?

ググッてみましたが、どこも「php artisan migrate を実行します。上手く行きましたね」としか書いておらず対処できずにいます。

どなたかお詳しいかた、よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Qiita のような二次情報ではなく公式のマニュアルを参考にしてください。
https://readouble.com/laravel/5.8/ja/database.html
https://readouble.com/laravel/5.7/ja/database.html

database/migrations に、マイグレーションファイル作成済み

migration以前に接続情報を.envに書いたのか?
質問文に書かれていないので、これをやっていないのでは?

投稿2019/04/14 06:52

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

YO14

2019/04/14 13:41

ご回答ありがとうございます。 公式マニュアル確認します。 > migration以前に接続情報を.envに書いたのか? > 質問文に書かれていないので、これをやっていないのでは? こちらですが、 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel //Mysqlで作成しておいたDB名 DB_USERNAME=root DB_PASSWORD=secret と記述していますが、エラーが発生します。
退会済みユーザー

退会済みユーザー

2019/04/14 14:29 編集

その情報を使って、コマンドラインで接続の確認はしましたか? 情報を提示されても、それが正しいかどうかは回答者にはわかりません。 その設定が正しいか間違っているかを判断できる客観的な事実を積み上げてください。
YO14

2019/04/14 14:42

すみません、 C:\xampp\mysql\bin>mysql -u root を実行したところ、access denied が出ました。そもそもこのrootというユーザーで接続ができないようでした。 ですが、phpmyadminの、ユーザーアカウントにはrootが存在しています。なぜ接続できないのでしょうか。
退会済みユーザー

退会済みユーザー

2019/04/14 15:01

まず、使用するコマンドが間違っています。 C:\xampp\mysql\bin>mysql -u root -p -p オプションをつけないとパスワードなし接続になる。
YO14

2019/04/16 05:22

C:\xampp\mysql\bin>mysql -u root@localhost -p とすることで、パスワード入力を求められ、入力することでDBにアクセスできました。
退会済みユーザー

退会済みユーザー

2019/04/16 05:43

本来の質問は解決していないはずですが?
YO14

2019/04/16 08:56

そうでした、laravelとの接続がまだでした… ですが、その前段階でよくわからなくなっています。 rootと、root@localhostの違いは何なのでしょうか。
退会済みユーザー

退会済みユーザー

2019/04/16 10:11

ユーザー名@ホスト名
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問