【问题标题】:ddev import-db: Index column size too large. The maximum column size is 767 bytesddev import-db:索引列大小太大。最大列大小为 767 字节
【发布时间】:2018-04-11 22:42:49
【问题描述】:

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

“索引列大小太大。最大列大小为 767 字节。”

这似乎是为 utf8mb4 设置的 ddev 中导入常规 utf8 charset db 的结果,使用 4 个字节作为字符,并且超出了索引列大小。

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

【问题讨论】:

  • 谢谢@RickJames - 所有这些都需要更改数据库,对吧?在这种情况下,希望不要更改数据库,因为它属于服务器环境,但在 ddev 中仅用于本地开发。
  • 好吧,显然转储是从以一种方式配置的一个版本获取的,然后您将其加载到另一个配置不同的版本。我的文件给你5个选择;你不能做其中任何一个吗?

标签: typo3 mariadb ddev


【解决方案1】:

这个问题最初在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

【讨论】:

  • 更改 large_prefix 同时需要其他 4 件事。
猜你喜欢
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 2015-08-26
  • 2019-10-12
  • 2016-01-06
  • 1970-01-01
  • 2018-11-30
相关资源
最近更新 更多