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

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

新規登録して質問してみよう
ただいま回答率
85.46%
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回答

1651閲覧

LaravelのMySQLの接続エラー

maaaaakoto

総合スコア13

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グッド

0クリップ

投稿2020/02/15 09:12

編集2020/05/05 16:40

前提・実現したいこと

Laravelを利用して仮想環境Vagrant内のMySQLに接続するmigrationでのエラーが解決できません。
Database名はUniFoodで、User名はuserです。

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

Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = UniFood and table_name = migrations and table_type = 'BASE TABLE')

該当のソースコード

database.php

1 2 'mysql' => [ 3 'driver' => 'mysql', 4 'url' => env('DATABASE_URL'), 5 'host' => env('DB_HOST', 'IPアドレス'), 6 'port' => env('DB_PORT', '2202'), 7 'database' => env('DB_DATABASE', 'UniFood'), 8 'username' => env('DB_USERNAME', 'user'), 9 'password' => env('DB_PASSWORD', 'ForStudents'), 10 'unix_socket' => '/var/run/mysqld/mysqld.sock', 11 'charset' => 'utf8mb4', 12 'collation' => 'utf8mb4_unicode_ci', 13 'prefix' => '', 14 'prefix_indexes' => true, 15 'strict' => true, 16 'engine' => null, 17 'options' => extension_loaded('pdo_mysql') ? array_filter([ 18 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), 19 ]) : [], 20 ],

試したこと

.envを
DB_CONNECTION=mysql
DB_HOST=IPアドレス
DB_PORT=2202
DB_DATABASE=UniFood
DB_USERNAME=user
DB_PASSWORD=ForStudents
のように変更しました。

また、新規にuserというユーザーを追加してUniFoodというデータベースへのアクセス権限を付与しています。

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

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/02/15 09:22

ソケットがないからですね。
maaaaakoto

2020/02/15 09:40

databases.phpでソケットを指定しているのですが、それとは無関係でしょうか? 解答ありがとうございます。
mikkame

2020/02/15 10:17

ls /var/run/mysqld/mysqld.sock でそのソケットがあるか確かめてみるのはどうでしょうか
maaaaakoto

2020/02/15 10:40 編集

`vagrant@homestead:~$ ls /var/run/mysqld/mysqld.sock /var/run/mysqld/mysqld.sock` 解答ありがとうございます。 lsコマンドにより確かめてみた結果、ファイルは存在しました。
退会済みユーザー

退会済みユーザー

2020/02/15 10:27

パーミッション問題の関係で php 実行ユーザーからみたら扱えない(見えない)方かな
mikkame

2020/02/15 10:31

DBHOSTとsock両方設定されていますがどっちにつなげたいんでしょうか
maaaaakoto

2020/02/15 10:31

解答ありがとうございます。 userでUniFoodというデータベースを扱う予定なんですが、mysqlにおいてuserがUniFoodを扱えるように権限を付与しました。 mysql> show grants for 'user'@'localhost'; +-----------------------------------------------------------+ | Grants for user@localhost | +-----------------------------------------------------------+ | GRANT USAGE ON *.* TO 'user'@'localhost' | | GRANT ALL PRIVILEGES ON `UniFood`.* TO 'user'@'localhost' | +-----------------------------------------------------------+ 2 rows in set (0.00 sec)
maaaaakoto

2020/02/15 10:36

>mikkame 解答ありがとうございます。 デフォルトのホストである127.0.0.1以外の場合はソケットの指定が必要だと検索した結果読み取ったのですが、間違った情報でしたか??
mikkame

2020/02/15 11:22

違います。 他のipならsock経由ではなくtcp経由の接続になりますので不要です。
mikkame

2020/02/15 11:23

asahinaさんが言っているのはファイルのパーミッションの事だと思われます
maaaaakoto

2020/02/15 11:56

>mikkame すなわちどのように変更すれば良いでしょうか?
guest

回答1

0

ベストアンサー

Homesteadなら余計なことは何もせず.envだけ設定すればいい。

DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret

投稿2020/02/15 10:38

kawax

総合スコア10377

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

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

maaaaakoto

2020/02/15 11:55 編集

解答ありがとうございます。 Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES) (SQL: select * from information_schema.tables where table_schema = homestead and table_name = migrations and table_type = 'BASE TABLE') のようなエラーが出ました。 mysql> show grants for 'homestead'@'localhost'; +------------------------------------------------------------------+ | Grants for homestead@localhost | +------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'homestead'@'localhost' | | GRANT ALL PRIVILEGES ON `homestead`.* TO 'homestead'@'localhost' | +------------------------------------------------------------------+ 2 rows in set (0.00 sec) mysql> FLUSH PRIVILEGES; で権限は付与しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問