一尘不染

Laravel迁移错误:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为767字节

mysql

Laravel 5.4上的迁移错误php artisan make:auth

[Illuminate \ Database \ QueryException] SQLSTATE
[42000]:语法错误或访问冲突:1071指定的密钥太长;默认值为0。最大密钥长度为767字节(SQL:更改表users添加唯一users_email_uniqueemail))

[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1071指定的密钥太长;默认值为0。最大密钥长度为767字节


阅读 381

收藏
2020-05-17

共1个答案

一尘不染

根据官方文档,您可以轻松解决此问题。

将以下代码添加到 AppServiceProvider.php (/app/Providers/AppServiceProvider.php)

use Illuminate\Database\Schema\Builder; // Import Builder where defaultStringLength method is defined

function boot()
{
    Builder::defaultStringLength(191); // Update defaultStringLength
}

MySQL始终将UTF8字段的最大数量保留为4个字节,因此使用DEFAULT CHARACTER SET 255 + 255时为utf8mb4
COLLATE utf8mb4_unicode_ci; 您超过了767最大密钥长度限制。通过@scaisedge

2020-05-17