返回首页DA系统C#IDE文件同步服务屏保 今天是: 2026-05-05    "立夏"  夏季的第一个节气,表示盛夏时节的正式开始

搜索
热搜: linux 技术
Hi~登录注册
查看: 1570|回复: 0

[转载] 【转载】Mysql报Specified key was too long; max key length is 767 bytes解决方案

[复制链接]
发表于 2024-12-26 09:40:01 | 显示全部楼层 |阅读模式
Mysql报Specified key was too long; max key length is 767 bytes解决方案


#实际情况也可以适用于在RHEL7 yum源中安装mariadb

公司使用的mysql数据库版本是5.6.51



在使用navicat或者直接使用mysql客户端命令行往mysql里边导入运行sql语句时候,总是提示Specified key was too long; max key length is 767 bytes

导致上面报错的原因是由于InnoDB表的索引长度限制,在MySQL5.6版本后引入了参数innodb_large_prefix可以解决这个问题。该参数控制是否允许单列的索引长度超过767字节,有ON和OFF两个取值:

ON :Innodb表的行记录格式是Dynamic或Compressed的前提下,单列索引长度上限扩展到3072个字节
OFF:Innodb表的单例索引长度最多为767个字节,索引长度超出后,主键索引会创建失败,辅助索引会被截断成为前缀索引

Between 5.6.3 and 5.7.7

设置mysql的innodb参数:

set global innodb_large_prefix = ON;

SET GLOBAL innodb_file_format=Barracuda;

SET GLOBAL innodb_file_per_table=ON;

使用客户端命令行设置上边那几个参数




这时再给建表语句加上ROW_FORMAT = Dynamic尝试,可以看到表就可以创建成功了





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为修仙之旅的少年~

x
游客
回复
*滑块验证:

DA论坛飞机票来了~
快速回复 返回顶部 返回列表