目录

解决 Laravel Migration Error: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

报错信息

Laravel Migration Error: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

方法一:

根据官方 Laravel 7.x 文档,你可以很容易地解决这个问题。

更新您的/app/Providers/AppServiceProvider.php以包含:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
use Illuminate\Support\Facades\Schema;
  
/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}

请谨慎使用此解决方案。

方法二:

编辑config文件夹中的database.php

1
2
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',

1
2
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',

方法三:

只需将默认数据库引擎设置为InnoDB

找到/config/database.php

1
2
3
4
5
'mysql' => [
    ...,
    ...,
    'engine' => 'InnoDB',
 ]

然后运行

1
php artisan config:cache

清除并刷新配置缓存

参考:https://stackoverflow.com/questions/42244541/laravel-migration-error-syntax-error-or-access-violation-1071-specified-key-wa