首页 > 解决方案 > SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 1000 字节

问题描述

我正在尝试安装 laravel voyager 但收到此错误。

SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 1000 字节(SQL:alter table users add unique users_email_unique( email))

这是我的 \app\Providers\AppServiceProvider.php

public function boot()
{
    Schema::defaultStringLength(191);
}

这是我的 config\database.php

'charset' => 'utf8',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',

我的数据库有颜色utf8mb4_unicode_ci

标签: laravelvoyager

解决方案


你可以增加那个

SET @@global.innodb_large_prefix = 1;

例如


mysql> set global innodb_large_prefix = ON;
Query OK, 0 rows affected (0.00 sec)


推荐阅读