将通过mysqldump
导出的数据导入新的MySQL数据库时,我在create table语句中收到以下错误:
ERROR 1031 (HY000) at line ###: Table storage engine for '<table_name>' doesn't have this option
对“此选项”的引用似乎很模糊。导致错误的原因是什么?
答案 0 :(得分:0)
在MySQL 5.6及更早版本中创建表时,选项ROW_FORMAT=FIXED
将被静默解释为ROW_FORMAT=COMPACT
。在启用了innodb_strict_mode
的MySQL 5.7.7及更新版本中,行为不同 - FIXED
不再是有效值。如果导出使用ROW_FORMAT=FIXED
创建的表并将它们导入到MySQL 5.7.7及更高版本中,则会收到有关没有该选项的存储引擎的错误。
谢天谢地,修复很简单。在任何触发错误的SQL语句中将ROW_FORMAT=FIXED
更改为ROW_FORMAT=COMPACT
。或者,您可以禁用innodb_strict_mode
以获取先前的行为。
有关详细信息,请参阅MySQL bug #77625。