Laravel Version: 5.6.17
PHP Version: 7.2
Laravel-admin: 1.5.*
MySql: 8.0.11
Description:
Exception trace:
PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'")
Steps To Reproduce:
MySql 全局设置
sql-mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'
执行命令:
php artisan admin:install
MySql日志输出:
2018-04-26T07:24:48.534238Z 9 Connectroot@localhost on lavavel using TCP/IP
2018-04-26T07:24:48.534555Z 9 Queryuse `lavavel`
2018-04-26T07:24:48.534890Z 9 Prepareset names 'utf8mb4' collate 'utf8mb4_unicode_ci'
2018-04-26T07:24:48.534974Z 9 Executeset names 'utf8mb4' collate 'utf8mb4_unicode_ci'
2018-04-26T07:24:48.535112Z 9 Close stmt
2018-04-26T07:24:48.535193Z 9 Prepareset session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
2018-04-26T07:24:48.535262Z 9 Executeset session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
2018-04-26T07:24:48.535473Z 9 Close stmt
尝试改代码:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'sql_mode' => 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION', // 企图设定连接模式
'prefix' => '',
'strict' => true,
'engine' => null,
]
问题依旧。有解决的办法吗?