Laravel

【Laravel】データベースに繋がらない時の確認方法

Laravel

はじめに

JavaScriptはVue.js、jQueryでの業務経験があるのですが、PHPはフレームワークを使ったことがなかったので、最近Laravelの勉強を始めています。

一旦たにぐちさんの動画で環境構築、軽くMVCを動かしてみるというところまでは詰まらずいけたのですが、その後自分で新たなに勉強していくなか、データベースに繋がらない時の確認方法が必要になったので、記事しておきます。

今回は以前使用したsqliteと今回使ったMySQLで確認をしたときの方法です

データベースに繋がらない時の確認方法

1. まずLaravelで接続状態確認

以下の Laravelのコマンドで今の状況を確認できます。

php artisan migrate:status

 

何かしらのエラーがてて、繋がってなかったら以下のいづれかを確認します。

たか
たか

個人的に順番はつけていますが、目星がついてる場合は怪しい個所から調べてもおけまるです

2. php.iniを確認する

phpの設定ファイルを確認し使いたいデータベースがコメントアウトされていないか確認する。
php.iniにはたくさん記述があるので、Ctrl+Fで検索すると見つけやすいです。

extension=pdo_sqlite

※sqliteならこれを確認力

extension=mysqli

※MySQLならこれを確認

3. .env のデータベース設定がきちんとなっているか

.envはLaravelの設定ファイルです。
TOPにあるので中身を確認します。

.envにもたくさん記述があるので、Ctrl+Fで検索すると見つけやすいです。

DB_CONNECTION=sqlite

※sqliteならこれだけ記載し他のはコメントアウトで非活性にしてOK

DB_CONNECTION=mysql
DB_HOST=ホスト名
DB_PORT=ポート
DB_DATABASE=DB名
DB_USERNAME=ユーザネーム
DB_PASSWORD=パスワード

※MySQLは適宜今の状況にあったものを記載します

4. database.phpの対象のDB設定がきちんとなっているか

Laravelの config/database.php は .env ファイルの設定を参照し、なければ第二引数の値が設定として参照されるファイルです。
なので、MySQLの場合は .env ファイルの設定がされているものは特に変更しなくても基本は動くと思います。

ただし、sqliteの場合は初期設定のDBのファイル名が「database.sqlite」なのでファイル名を変更した場合は適宜記載します。

'database' => env('DB_DATABASE', database_path('DBのファイル名のみ記載'))

※sqliteの場合

5. 使ってるサーバーは起動してるか

これ本当に凡ミスでした😅
当時XAMPPだったのですが、XAMPPを起動していなくてエラーになるということがありました笑

サーバーはちゃんと起動しましょう😅

6. 設定ファイル変更後にキャッシュはのこってないか

いろいろと設定ファイルを変更した場合に、前回の設定値がキャッシュで残ることがあるそうです。
見返しても間違いがない場合は以下のコマンドで設定ファイルのキャッシュをクリアしてみてください。

php artisan config:cache

 

たか
たか

以上です!
いろいろと大変なこともありますが..お互い頑張りましょう!