Moodle 数据库转储无法恢复

Moodle database dump not working on restore

我在尝试从 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)

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