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)
在每个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)
Laravel 5.5的下一个版本将增加对MySQL 8.0的支持:https://github.com/laravel/framework/pull/24038
更新:Laravel 5.5.41已经发布.