ddev import-db:索引列大小太大。最大列大小为 767 字节

ddev import-db: Index column size too large. The maximum column size is 767 bytes

当使用 ddev import-db 将 TYPO3 9 的生产数据库转储导入 ddev 项目时,我遇到了 mysql 错误:

"Index column size too large. The maximum column size is 767 bytes."

这似乎是将常规 utf8 字符集数据库导入 ddev 的结果,ddev 是为 utf8mb4 设置的,使用 4 个字节用于字符,并超出索引列大小。

有什么解决办法? (除了更改列定义、更改我的产品站点和数据库等)

这个问题最初是在 https://github.com/drud/ddev/issues/654

中讨论和解决的

现在有一种方法可以覆盖 ddev 中的默认 mysql 设置。

example MariaDB/mysql override docs 正是这个例子。

在您的项目的 .ddev/mysql 目录中,添加一个名为 utf8ci.cnf 的文件(或者任何您想要的名称,只要它以 .cnf 结尾即可)包含以下内容:

[mysqld]
collation-server = utf8_general_ci
character-set-server = utf8
innodb_large_prefix=false