laravel 5.5 with mysql 8.0.11:“sql\u mode”不能设置为“no\u auto\u create\u user”的值

uyto3xhc  于 2021-06-25  发布在  Mysql
关注(0)|答案(7)|浏览(440)

我刚刚安装了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, ...";

但我也犯了同样的错误。我怎样才能解决这个问题并运行laravel 5.5 使用mysql 8.0.11 ?

lmvvr0a8

lmvvr0a81#

您的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',
            ],
    ],
zbq4xfa0

zbq4xfa02#

由于mysql 8.0目前(像今天一样)不支持no\u auto\u create\u user,您应该在备份中按空格查找并替换:“no\u auto\u create\u user”
这样,5.7版的备份将在8.0版中恢复正常

uubf1zoe

uubf1zoe3#

我正在WindowsWampServer上使用MySQL8.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',
        ],
j0pj023g

j0pj023g4#

laravel 5.5的下一个版本将增加对mysql 8.0的支持:https://github.com/laravel/framework/pull/24038
更新:Laravel5.5.41已经发布。

jdgnovmf

jdgnovmf5#

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

'modes' => [
     'ONLY_FULL_GROUP_BY',
     'STRICT_TRANS_TABLES',
     'NO_ZERO_IN_DATE',
     'NO_ZERO_DATE',
     'ERROR_FOR_DIVISION_BY_ZERO',
     'NO_ENGINE_SUBSTITUTION',
],
xzv2uavs

xzv2uavs6#

mysql 8.0不支持no\u auto\u create\u user
文档:https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html

0x6upsns

0x6upsns7#

如何修复laravel no\ u auto\ u create\ u user code for 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',
]

相关问题