当我遇到此错误时,我正尝试从Moodle数据库还原MariaDB转储:
ERROR 1071 (42000) at line 10540: Specified key was too long; max key length is 767 bytes
经过一番研究,我对utf8mb4_unicode_ci模式的排序规则有所怀疑。
当我将大小从255更改为170时,可以解决此错误。但是,有时大小为255并不重要,因为它会创建它们。
现在
1-如果还原文件不起作用,为什么转储文件为我提供此配置?
2-如果不允许varchar大小,这如何工作?
3-除了将范围从255更改为170之外,还有其他更简单的方法可以实现此功能吗?
答案 0 :(得分:0)
正如@Rick James在编辑中所说,解决方案是下一步:
SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_large_prefix=1;
logout & login (to get the global values);
ALTER TABLE tbl ROW_FORMAT=DYNAMIC; -- (or COMPRESSED)
在这种情况下,已采取步骤以重新配置新服务器的数据库引擎。