MySQL 导入 sql 时报错:ERROR 1071 (42000) at line 1236: Specified key was too long; max key length is 1000 bytes
是因为在执行 MySQL 恢复任务时,遇到了一个键过长的问题。
错误代码 1071 通常是因为在恢复数据时,数据库引擎试图创建一个键,但是该键的长度超过了数据库引擎所允许的最大长度(1000 字节)。
要解决这个问题,你可以考虑以下几个方案:
MySQL 对于 InnoDB 存储引擎有一个索引键长度的限制,这个限制基于字符集的不同而不同。
例如,如果使用 utf8mb4 字符集,每个字符可能占用 4 个字节,所以最大长度会进一步减少。
如果你的表使用 utf8mb4 字符集,并且你尝试创建一个索引,其长度超过了 1000 字节的限制,就会出现这个错误。
通过修改 MySQL 的配置来解决这个问题。具体来说,你可以修改 innodb_large_prefix
和 innodb_file_format
参数。
innodb_large_prefix:参数控制 InnoDB 存储引擎是否支持大于 767 字节的索引前缀。将其设置为 ON
可以允许更长的索引前缀,从而使得更长的键被支持。
innodb_file_format:参数控制 InnoDB 存储引擎的文件格式。将其设置为 Barracuda
并启用 innodb_large_prefix
参数可以允许更长的索引前缀。
可以通过以下步骤来修改 MySQL 配置:
找到 MySQL 的配置文件,通常是 my.cnf
或者 my.ini
,具体位置可能因安装方式而异。
在配置文件中找到或添加以下两行配置:
innodb_large_prefix=ON
innodb_file_format=Barracuda
保存并关闭配置文件。
重启 MySQL 服务,使得修改后的配置生效。
未经允许不得转载:前端资源网 - w3h5 » MySQL导入sql报错Specified key was too long问题解决