Laravel 5.4上的迁移错误php artisan make:auth
php artisan make:auth
[Illuminate \ Database \ QueryException] SQLSTATE [42000]:语法错误或访问冲突:1071指定的密钥太长;默认值为0。最大密钥长度为767字节(SQL:更改表users添加唯一users_email_unique(email)) [PDOException] SQLSTATE [42000]:语法错误或访问冲突:1071指定的密钥太长;默认值为0。最大密钥长度为767字节
[Illuminate \ Database \ QueryException] SQLSTATE [42000]:语法错误或访问冲突:1071指定的密钥太长;默认值为0。最大密钥长度为767字节(SQL:更改表users添加唯一users_email_unique(email))
users
users_email_unique
email
[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1071指定的密钥太长;默认值为0。最大密钥长度为767字节
根据官方文档,您可以轻松解决此问题。
将以下代码添加到 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