带有MySQL 8.0.11的Laravel 5.5:'sql_mode'不能设置为'NO_AUTO_CREATE_USER'的值

时间:2018-04-27 18:54:06

标签: mysql laravel laravel-5.5

我刚安装了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

7 个答案:

答案 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',
]