はじめに
JavaScriptはVue.js、jQueryでの業務経験があるのですが、PHPはフレームワークを使ったことがなかったので、最近Laravelの勉強を始めています。
一旦たにぐちさんの動画で環境構築、軽くMVCを動かしてみるというところまでは詰まらずいけたのですが、その後自分で新たなに勉強していくなか、データベースに繋がらない時の確認方法が必要になったので、記事しておきます。
今回は以前使用したsqliteと今回使ったMySQLで確認をしたときの方法です
データベースに繋がらない時の確認方法
まずLaravelで接続状態確認
以下の Laravelのコマンドで今の状況を確認できます。
php artisan migrate:status
何かしらのエラーがてて、繋がってなかったら以下「2」以降のいづれかを確認します。
個人的に順番はつけていますが、目星がついてる場合は怪しい個所から調べても おけまる です
php.iniを確認する
phpの設定ファイルを確認し使いたいデータベースがコメントアウトされていないか確認する。
php.iniにはたくさん記述があるので、Ctrl+Fで検索すると見つけやすいです。
extension=pdo_sqlite
※sqliteならこれを確認力
extension=mysqli
※MySQLならこれを確認
.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は適宜今の状況にあったものを記載します
database.phpの対象のDB設定がきちんとなっているか
Laravelの config/database.php は .env ファイルの設定を参照し、なければ第二引数の値が設定として参照されるファイルです。
なので、MySQLの場合は .env ファイルの設定がされているものは特に変更しなくても基本は動くと思います。
ただし、sqliteの場合は初期設定のDBのファイル名が「database.sqlite」なのでファイル名を変更した場合は適宜記載します。
'database' => env('DB_DATABASE', database_path('DBのファイル名のみ記載'))
※sqliteの場合
使ってるサーバーは起動してるか
これ本当に凡ミスでした😅
当時XAMPPだったのですが、XAMPPを起動していなくてエラーになるということがありました笑
サーバーはちゃんと起動しましょう😅
設定ファイル変更後にキャッシュはのこってないか
いろいろと設定ファイルを変更した場合に、前回の設定値がキャッシュで残ることがあるそうです。
見返しても間違いがない場合は以下のコマンドで設定ファイルのキャッシュをクリアしてみてください。
php artisan config:cache