MinEMemO

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

📝 更新日:2020-06-28 / 📄 作成日:2020-06-28
Hero Image
目次

はじめに

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

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

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

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

まずLaravelで接続状態確認

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

php artisan migrate:status



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

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

php.iniを確認する

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

php.ini
extension=pdo_sqlite

※sqliteならこれを確認力

php.ini
extension=mysqli

※MySQLならこれを確認

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

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

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

.env
DB_CONNECTION=sqlite

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

.env
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」なのでファイル名を変更した場合は適宜記載します。

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

※sqliteの場合

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

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

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

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

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

php artisan config:cache
以上です! いろいろと大変なこともありますが..お互い頑張りましょう!
profile_icon
taka
プログラマー
いつでも転職希望の業務経験7年目(2023時点)のエンジニアです。 仕事の合間にすこしずつ転職活動はしていますが、条件が合う場合ぜひTwitterなどでご連絡頂けると嬉しいです。 希望条件は基本的に残業は1日x1h程度。収入は一旦現状維持。 ある程度で構わないので、保守運用が管理されていて、精神的に安心して働ける環境が良いです。 経験言語はHTML、CSS、javascript、PHP、MySQL、Docker、Vuejs、Laravel このブログは完全に自作で静的ジェネレータで作りました。 この範囲で言えば React.js Gatsby.js GraphQLも経験があります。 最近はAIがどう社会に受け入れられ、日常になっていくのかの行く末が気になっています。 今までの人生で一番変化を感じて不思議な感覚です。