Mamp環境でLaravelの学習用にローカル環境でphp artisan migrate 実行した際、エラーが出てしまいハマったので備忘録として残しておきます。
###発生したエラー① SQLSTATE[HY000] [2002]
コマンドを実行した際、初めに下記のようなエラーが発生しました。
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Connection refused
###解決策①
.envファイルの下記の設定を見直すことで解決しました。
- DB_HOST=127.0.0.1をlocalhostへ変更
- DB_PORTの設定を確認する(3306 or 8889)
.env
DB_HOST=localhost
DB_PORT=8889(自分の環境に合わせる)
###発生したエラー② SQLSTATE[HY000]: General error: 1273 Unknown collation
次に発生したのは下記のエラーです。
Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 1273 Unknown collation: 'utf8'
###解決策②
config/database.phpファイルのcharsetとcollationの設定をデータベースの文字コードに合わせることで解決しました。
私が作成していたデータベースの文字コードはutf8ではなくutf8mb4_unicode_ciで作成していたためこの部分でエラーが発生していました。
config/database.php
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
###設定ファイル修正後はキャッシュをクリアする
上記の設定ファイルを修正後、以下のコマンドでキャッシュをクリアし、再度php artisan migrateを実行することで上手くいきました。
php artisan cache:clear
php artisan config:clear
以上です。