Amazon RDS到自定义MySQL服务器InnoDB密钥大小

我想将Amazon MySQL RDS实例导出到我自己的运行MySQL的服务器上.我成功地转储了数据库并在新数据库上重新创建了用户,但是当我去导入dumpfile时,我得到:

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.然后我发现这个*帖子将ROW_TYPE = DYNAMIC选项添加到dumpfile:Force row_format on mysqldump

然而,我仍然得到相同的错误消息.想法?

解决方法:

我相信这是编码问题.
如果在RDS上使用latin1,但在您的环境中使用UTF-8,那么索引VARCHAR(256)就成了问题.

因为在UTF-8中VARCHAR(256)在内部变为VARCHAR(768).

上一篇:Cognos 11.0快速开发指南 Ⅱ


下一篇:mysql – 从私有子网访问AWS RDS