我想将 Amazon MySQL RDS 实例导出到我自己的运行 MySQL 的服务器。我成功转储了数据库并在新数据库上重新创建了用户,但是当我去导入转储文件时,我得到:
ERROR 1071 (42000) at line 25: Specified key was too long; max key length is 767 bytes
一些谷歌搜索显示 InnoDB 的最大密钥大小为 767。事实证明,我们在 RDS 中使用了以下选项:
innodb_large_prefix=on
innodb_file_format=barracuda
innodb_file_per_table=true
log_bin_trust_function_creators=1
我将这些选项添加到 my.cnf,但我收到了相同的错误消息。然后我读到 innodb_large_prefix 仅适用于 ROW_TYPE=DYNAMIC 的表。事实证明,我们在 RDS 上使用了动态行,但这些行并未在转储文件中创建为 DYNAMIC。然后我发现这个 StackOverflow 帖子添加了 ROW_TYPE=DYNAMIC 选项到转储文件:Force row_format on mysqldump
然而,我仍然收到相同的错误消息。想法?