エラー文
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 ができました。