Laravelとデータベースの接続エラーで次のようなメッセージがでることがあります。
Illuminate\Database\QueryException
このときの対策を解説します。
対策①環境変数をチェックしましょう
まずは環境変数をチェックしましょう。
.envファイルを開き、mySQLの接続情報があっているか、確認してみてください。
データベースの名前が違っていたりしたら、修正しましょう。
対策②サーバーをつなぎなおしましょう
接続情報は合っていてもだめだった、という場合には、サーバーを一度立ち上げなおしてください。
【php artisan serve】でサーバーを立てていたら、一度ストップした後に、再度、サーバーをつないでみてください。
1 |
php artisan serve |
これで解決したら、よかったです!
「なぜ?」と気になったら、ここから先を読んでみてくださいね。
なぜサーバーをつなぎなおしたら解決するか?
この方法で解決するのは、次のような方だと思います。
- 複数のlaravelプロジェクトを動かしていて、プロジェクトごとに違うデータベースを使っている
- 環境変数ファイルの中でデータベースを間違って記述し、あとから書き換えた
Laravelのサーバーは、どうやら接続したときのmysqlのデータベース情報を認識しているようです。
なので接続した後に別のデータベースを使ったり、あるいは接続情報を変えても、変更に気づいてくれません。
そのためデータベースを変更したら、一度サーバーをとめて、接続しなおす必要があります。
さいごに
今回の解決法は、すべての環境で当てはまるかどうかわかりません。
とりあえず自分のところで発生したトラブルを解決できたので、こちらに共有しますね。
また追記情報などあれば、書き足していきます。