MySQL 创建数据表的时候报错

Error 1071: Specified key was too long; max key length is 767 bytes.
更新于: 2022-01-24 03:31:06

问题描述

Error 1071: Specified key was too long; max key length is 767 bytes.
ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.

原因

由于MySQL的InnoDB引擎表索引字段长度的限制为767字节,因此对多字节字符集的大字段或者多字段组合,在创建索引时会出现该问题。

说明:以utf8mb4字符集的字符串类型字段为例。utf8mb4是4个字节字符集,默认支持的索引字段最大长度是191字符(767字节/4字节每字符≈191字符),因此在varchar(255)或char(255)类型字段上创建索引会失败。详情请参见MySQL官网文档

先查看问题

show variables like 'innodb_large_prefix';

参考