阿里云数据库RDS迁移时报错:Specified key was too long; max key length is 767 bytes;

报错内容

  • 阿里云数据库RDS迁移时报错:Specified key was too long; max key length is 767 bytes;

错误分析

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

  • 以utf8mb4字符集字符串类型字段为例,utf8mb4是4字节字符集,则默认支持的索引字段最大长度是191字符(767字节/4字节每字符≈191字符),因此在varchar(255)或char(255)类型字段上创建索引会失败。

解决方案

  • 到阿里云RDS下管理数据库选择参数设置,找到innodb_large_prefix并将它修改为NO。最后提交一下修改( 将 innodb_large_prefix修改为ON或者1后,对于Dynamic和Compressed格式的InnoDB引擎表,其最大的索引字段长度支持到3072字节)。

在这里插入图片描述
在这里插入图片描述

  • 问题完美解决!
发布了55 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Z_Vivian/article/details/99630996