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

che*_*ier 12 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'
Run Code Online (Sandbox Code Playgroud)

我试图NO_AUTO_CREATE_USER手动设置:

set global sql_mode="..., NO_AUTO_CREATE_USER, ...";
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的错误.我怎么能解决这个问题并5.5使用MySQL 运行laravel 8.0.11

小智 22

你的laravel connexion(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',
            ],
    ],
Run Code Online (Sandbox Code Playgroud)


nas*_*han 7

在每个MySQL连接上添加以下内容:

'modes' => [
     'ONLY_FULL_GROUP_BY',
     'STRICT_TRANS_TABLES',
     'NO_ZERO_IN_DATE',
     'NO_ZERO_DATE',
     'ERROR_FOR_DIVISION_BY_ZERO',
     'NO_ENGINE_SUBSTITUTION',
],
Run Code Online (Sandbox Code Playgroud)


Jon*_*eir 6

Laravel 5.5的下一个版本将增加对MySQL 8.0的支持:https://github.com/laravel/framework/pull/24038

更新:Laravel 5.5.41已经发布.