【Laravel】php artisan migrateエラー

エラー文

SQLSTATE[HY000] [1049] Unknown database 'laravel'
 (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE') 

 

解決した方法

【エラー原因】
.envファイルに記載したdatabaseとlaravelが接続できていない(mysqlにデータベースがあることは確認済み)

php artisan config:cache を早い段階でしてしまっていた。

bootstrap/cache/config.phpが優先されるので、その後接続可能な状態に.envを変更しても無効となり、.envファイルが反映されませんでした。キャッシュに.envの内容を保持しているのが原因だそうです。

 

【参考サイト】
「.envファイル 反映 laravel」で検索して下記サイトを参考にしたらあっという間に解決できました。

 

【エラー解決】
bootstrap/cache/config.phpファイルを削除(既にphp artisan config:cache をしていたため)

php artisan config:cacheをまだしてない人は、キャッシュをクリアすることで新しい内容が反映されるようになります。

 


実際に私が行った事や編集前のファイルはこちら

編集前

.envファイル

APP_NAME=Laravel
APP_ENV=local
APP_KEY= 
APP_DEBUG=true
APP_URL=http://localhost


DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=activity6
DB_USERNAME=activity6
DB_PASSWORD="activity6"

laravel new ではなく、ディレクトリをコピーしたので.envファイルはコピーしました。APP_KEYは空白

 

試したこと

① キャッシュ

php artisan config:cache

これをするとbootstrap/cache/config.phpにファイルができる

 

②.envファイルのAPP_KEY(アプリケーションキー)を作成

php artisan key:generate

.envファイルの場所やファイルがない状態でこれをするとこのようなエラー文が出ます。

production.ERROR: file_get_contents(/Users/ユーザー名/ディレクトリ名/プロジェクト名/.env): failed to open stream: No such file or directory

 

この順番が逆でしたのでファイルを削除して.envファイルを接続可能な状態にし、通常通りに php artisan migrate ができました。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です