Migration error on Laravel 5.4 with 100

[Illumb\Database\QueryException]SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为767字节(SQL:alter tabl e users add unique users_email_unique(email))

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

推荐答案

根据official Laravel 7.x documentation,你可以很容易地解决这个问题.

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

use Illuminate\Support\Facades\Schema;

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}

或者,您可以为数据库启用innodb_large_prefix选项.有关如何正确启用此选项的说明,请参阅数据库文档.

Mysql相关问答推荐

是否有一种方法可以在mysql中设置一列,使其自动成为该行的行号的值?

MySQL查询获取图书的唯一读取页面数

找出同一表中列A中的每个值在列B中出现的次数

如何在MySQL中检索两列的值不同的行

排序子查询结果并返回每个 ID 的第一行

拆分列值并适当地返回拆分值

在 MySQL 中使用非空条件 LAG() 函数

组平SQL查询结果

为什么这个 NOT NULL 到 NULL 迁移会触发大量 I/O 操作?

如何替换 SELECT 查询中重复记录的列?

如何在考虑另一表的值的情况下计算一列的值

MySQL UPDATE 锁会因为连续的 SHARE 锁而饿死吗?

估计行数 SQL

DECIMAL(m, n) 在 64 位系统中如何表示?

MySQL:将日期时间插入其他日期时间字段

如何在 MySQL 中 Select 字段具有最小值的数据?

Laravel classloader.php 错误打开流失败:没有这样的文件或目录

MySQL - 如何 Select 值在数组中的行?

从mysql中的大表中快速 Select 随机行

在 MySQL 中仅 Select 仅包含字母数字字符的行