【问题标题】:SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytesSQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 1000 字节
【发布时间】:2021-02-28 12:38:32
【问题描述】:

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

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

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

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

这是我的配置\database.php

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

我的数据库有 COLATION utf8mb4_unicode_ci

【问题讨论】:

标签: laravel voyager


【解决方案1】:

你可以增加它

SET @@global.innodb_large_prefix = 1;

例如


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

【讨论】:

  • 在哪里设置?
  • 连接到您的数据库并在控制台中执行此代码...
  • 你使用 InnoDB 引擎存储吗?
  • 我使用 phpmyadmin 作为本地主机
  • 像你一样运行它 select * from foo
【解决方案2】:
猜你喜欢
  • 2019-10-11
  • 2018-09-28
  • 2018-09-15
  • 2017-03-13
  • 1970-01-01
  • 2017-07-03
  • 2012-02-03
相关资源
最近更新 更多