我刚安装了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, ...";
但我得到同样的错误。我如何解决问题并使用MySQL 5.5
运行laravel 8.0.11
?
答案 0 :(得分:16)
你的laravel connexion(config / database.php)应该是:
stty -echo
stty -echoctl
答案 1 :(得分:6)
Laravel 5.5的下一个版本将添加对MySQL 8.0的支持:https://github.com/laravel/framework/pull/24038
更新:Laravel 5.5.41已经发布。
答案 2 :(得分:6)
在每个MySQL连接上添加以下内容:
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
],
答案 3 :(得分:2)
MySQL 8.0不支持NO_AUTO_CREATE_USER
文档:https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html
答案 4 :(得分:1)
自从MySQL 8.0在此刻起(如今天)不支持NO_AUTO_CREATE_USER 您应该在备份中找到并替换:“ NO_AUTO_CREATE_USER”,按空格
这样,从5.7备份将在8.0中恢复正常
答案 5 :(得分:1)
我在Windows Wampserver上使用MySQL 8.0.18,并将以下内容添加到Laravel的database.php中
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
],
答案 6 :(得分:0)
如何修复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',
]