web-dev-qa-db-ja.com

Laravel 5.5 with MySQL 8.0.11: 'sql_mode'は、 'NO_AUTO_CREATE_USER'の値に設定できません

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で実行できますか?]

12
chevallier

Laravel 5.5の次のリリースでは、MySQL 8.0のサポートが追加されます。 https://github.com/laravel/framework/pull/24038

[〜#〜] update [〜#〜]:Laravel 5.5.41がリリースされました。

6

あなたの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',
            ],
    ],
20
eValdezate

MySQL接続のそれぞれに次を追加します。

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

MySQL 8.0はNO_AUTO_CREATE_USERをサポートしていません

ドキュメント: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html

2
KAGG Design

この時点でのMySQL 8.0は(今日のように)NO_AUTO_CREATE_USERをサポートしていないため、バックアップで「NO_AUTO_CREATE_USER」を検索して置換する必要があります。

これにより、5.7からのバックアップは8.0で正常に復元されます

1
Pemtium