laravel 中 mysql8 遇到的问题

删除了 NO_AUTO_CREATE_USER 模式

在 5.7.*的日志中提到已废除该模式,在8.0.11中删除了,迁移时会抛出如下异常:
Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

解决方法:

  1. 将 config/database.php 配置文件中 mysql 的 strict 的值改为false

  2. 在 config/database.php 配置文件中 mysql 的增加 modes

'mysql' => [
  'driver' => 'mysql',
  ...
  ...
  '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',
  ]
]

你可能感兴趣的:(laravel 中 mysql8 遇到的问题)