laravel5.5で、照合順序をutf8mb4_unicode_ci→utf8_general_ciに変更する方法
1, phpmyadminで、データベース→データベースをクリック→サーバ接続の照合順序をutf8_general_ciに変更する
2, プロジェクトルート直下にある.env に文字コードと照合順序の項目を追加する
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=接続するデータベース名
DB_USERNAME= ログイン名
DB_PASSWORD=パスワード
DB_CHARSE=utf8 ← なぜか無いので自分で追加する
DB_COLLATION=utf8_general_ci ← なぜか無いので自分で追加する
3, config/database.phpも修正する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), // なぜか固定なので、他の項目と同様に.envから取得するように変更(取得出来なかった時用に、元のデフォルトを指定しておく) // 'charset' => 'utf8mb4', 'charset' => env('DB_CHARSE', 'utf8mb4'), // 'collation' => 'utf8mb4_unicode_ci', 'collation' => env('DB_COLLATION', 'utf8_general_ci '), 'prefix' => '', 'strict' => true, 'engine' => null, ], |
4, php artisan migrate:refreshでテーブルを作り直して、テーブルの照合順序が変更されているか確認
※migrate:refreshだと、migrationsテーブルはutf8mb4_unicode_ciのままなので、phpmyadminから全消ししてから作り直した方がいい。