Laravel5.5和MySQL 8.0.11:&x27;sql#U模式';can';t设置为';无自动创建用户';

Laravel5.5和MySQL 8.0.11:&x27;sql#U模式';can';t设置为';无自动创建用户';,mysql,laravel,laravel-5.5,Mysql,Laravel,Laravel 5.5,我刚刚安装了MySQL8.0.11,将我的应用程序的数据库转移到其中,并更改了laravel数据库设置以使用新的数据库。现在,每次尝试登录时,都会出现以下错误: ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER' 我试图手动设置NO\u AUTO\u CREATE\u USER: set global sql_mode="..., NO_AUTO_CREATE_US

我刚刚安装了MySQL
8.0.11
,将我的应用程序的数据库转移到其中,并更改了laravel数据库设置以使用新的数据库。现在,每次尝试登录时,都会出现以下错误:

ERROR 1231 (42000):
Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'
我试图手动设置
NO\u AUTO\u CREATE\u USER

set global sql_mode="..., NO_AUTO_CREATE_USER, ...";

但我也犯了同样的错误。我如何解决这个问题并使用MySQL运行laravel
5.5

laravel 5.5的下一个版本将增加对MySQL 8.0的支持:

更新: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不支持无自动创建用户


文档:

在每个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 您应该在备份中按空格查找并替换:“无自动创建用户”


通过这种方式,5.7的备份将在8.0中恢复正常。我正在Windows Wampserver上使用MySQL 8.0.18,并将以下内容添加到database.php for 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\u AUTO\u CREATE\u用户 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',
]