Je viens d'installer MySQL 8.0.11
, y a transféré la base de données de mon application et modifié les paramètres de la laravel base de données pour utiliser la nouvelle. Maintenant, chaque fois que j'essaie de me connecter, l'erreur suivante s'affiche:
ERROR 1231 (42000):
Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'
J'ai essayé de mettre NO_AUTO_CREATE_USER
manuellement:
set global sql_mode="..., NO_AUTO_CREATE_USER, ...";
Mais je reçois la même erreur. Comment pourrais-je résoudre le problème et exécuter laravel 5.5
avec MySQL 8.0.11
?
La prochaine version de Laravel 5.5 ajoutera une prise en charge de MySQL 8.0: https://github.com/laravel/framework/pull/24038
[~ # ~] mise à jour [~ # ~] : Laravel 5.5.41 a été publié.
votre connexion laravel (config/database.php) devrait être telle que:
'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',
],
],
Ajoutez les éléments suivants sur chacune de vos connexions 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 ne supporte pas NO_AUTO_CREATE_USER
Documentation: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html
Depuis que MySQL 8.0 (à ce jour) ne supporte pas NO_AUTO_CREATE_USER, vous devez trouver et remplacer dans votre sauvegarde: "NO_AUTO_CREATE_USER," par Space.
de cette façon, la sauvegarde de la version 5.7 restaurera ok dans la version 8.0