创建数据库表的时候,报错:ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
原因: 其实,在 MySQL5.6 版本后引入了参数 innodb_large_prefix 可以解决这个问题。该参数控制是否允许单列的索引长度超过 767 字节,有 ON 和 OFF 两个取值: • ON :Innodb 表的行记录格式(row format)是 Dynamic 或 Compressed 的前提下,单列索引长度上限扩展到 3072 个字节,联合索引长度上线仍为 3072 个字节 • OFF:Innodb 表的单例索引长度最多为 767 个字节,索引长度超出后,主键索引会创建失败,唯一索引也会创建失败,辅助索引会被截断成为前缀索引
解决方案:回复查看 解决方案: 设置 MySQL 的全局参数 innodb_large_prefix=ON,将 InnoDB 表的索引上限扩大到 3072 个字节。 如果是阿里云RDS:请打开RDS实例,然后找到参数设置,搜索innodb_large_prefix,改成ON就可以了。
|