Moodle数据库转储无法恢复



我正试图从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,还有什么更简单的方法可以完成这项工作吗?

正如@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)

在这种情况下,采取这些步骤是为了重新配置新服务器的数据库引擎。

最新更新