Я только что установил MySQL 8.0.11, перенес в него базу данных моего приложения и изменил настройки базы данных laravel, чтобы использовать новую. Теперь каждый раз, когда я пытаюсь войти в систему, я получаю следующую ошибку:
ERROR 1231 (42000):
Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'
Пытался установить NO_AUTO_CREATE_USER вручную:
set global sql_mode = "..., NO_AUTO_CREATE_USER, ...";
Но я получаю ту же ошибку. Как я могу решить проблему и запустить laravel 5.5 с MySQL 8.0.11?






В следующем выпуске Laravel 5.5 будет добавлена поддержка MySQL 8.0: https://github.com/laravel/framework/pull/24038
ОБНОВИТЬ: Выпущен Laravel 5.5.41.
ваше соединение с laravel (config / database.php) должно быть таким, чтобы:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
],
],
MySQL 8.0 не поддерживает NO_AUTO_CREATE_USER
Документация: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html
Добавьте следующее в каждое из ваших подключений MySQL:
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
],
Поскольку MySQL 8.0 в настоящий момент (как и сегодня) не поддерживает NO_AUTO_CREATE_USER вы должны найти и заменить в своей резервной копии: «NO_AUTO_CREATE_USER» на пробел
таким образом резервная копия из 5.7 восстановит нормально в 8.0
Я использую MySQL 8.0.18 на Windows Wampserver и добавляю ниже в database.php для Laravel
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
],
Как исправить Laravel NO_AUTO_CREATE_USER код для database.php
mode => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
]