如何修复mysql错误1031-'catalog_product_relation'的表存储引擎没有此选项?


30

我正在尝试为我们的Magento商店开发新的开发版本。我进行了El Capitan的全新安装,并用PHP,Mysql(版本5.7.10)等运行apache。我还运行了phpmyadmin并为Magento创建了一个数据库。但是,当我尝试从生产站点导入备份时,出现错误:

ERROR 1031 (HY000) at line 291001: Table storage engine for 'catalog_product_relation' doesn't have this option

我尝试使用以下命令通过终端导入.sql文件:

mysql -h localhost -u <user> -D <database> -p < <file>

我在这里迷路了。Google退出了一段时间,但找不到解决方案。我正在使用与生产数据库中相同的引擎。

有人有想法么?


您是如何创建出口的?您是否检查过本地数据库(是否已多次测试)是否已创建任何表?如果是这样,请在运行新导入之前删除所有这些表。
AnnaVölkl15年

Answers:


49

最近,我在导入时遇到了同样的问题。

问题

这可能是由于CREATE TABLE DDL中具有table选项的缘故: ROW_FORMAT=FIXED

让我们检查一下SQL转储中是否有任何这样的字符串(例如:magento-db-dump.sql)。

cat magento-db-dump.sql | grep '=FIXED'

结果是

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Catalog Product Relation Table';
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Catalog Product To Website Linkage Table';

ROW_FORMAT=FIXED从CREATE TABLE DDL中删除选项将解决此问题。因此,让我们尝试可能的解决方案。

#1

sed -i 's/ROW_FORMAT=FIXED//g' magento-db-dump.sql

在MacOSx中,这对我不起作用,从而导致以下错误:

sed:1:“ magento-db-dump.sql”:无效的命令代码m

#2

sed -i '' 's/ROW_FORMAT=FIXED//g' magento-db-dump.sql

甚至结果是:

sed:RE错误:非法字节序列

#3 但是这个在MacOSx中对我有用

LC_ALL=C sed -i '' 's/ROW_FORMAT=FIXED//g' magento-db-dump.sql

来源


对我来说,以下命令有效:find -name "mysql_dump.sql" | xargs perl -pi -e 's/ROW_FORMAT=FIXED//g'
Wasiq Shahrukh,

1.在ubuntu上为我工作
Joel Davey '18

@JoelDavey是1#在Ubuntu中工作。我指的是MacOS。
MagePsycho

10

尝试将Magento数据库转储从MySQL 5.5导入MySQL 5.7时遇到相同的问题。问题似乎是两个InnoDB表上的表选项ROW_FORMAT = FIXED。从数据库转储中删除该选项的两次出现,可以使导入运行而没有错误。

似乎此选项仅与MyISAM表相关,至少在MySQL 5.7中如此。


1
小添加:与以前innodb_strict_mode默认为关闭的设置有关,但默认情况下从MySQL 5.7.7开始启用(根据MySQL文档)。
Jisse Reitsma '17


6

另一个选择是将其添加innodb_strict_mode = off到您的MySQL配置文件中。我使用无人参与的安装遇到了此错误,该安装magerun使我无法编辑SQL文件。我不确定在生产环境中是否需要禁用InnoDb严格模式,但至少在开发环境中有效。


1

该表应该是InnoDB。我会检查您的mysql设置,以确保您已启用/允许。另外,建议您可能存在该表。在确认InnoDB正常工作后,我将删除所有表并重试。
只是关闭了您提供的错误消息,我希望InnodDB尚未准备好或正在使用当前安装。


刚刚检查了mysql。启用它并将其设置为默认引擎。我正在将其导入完全没有表的全新数据库中。将会尝试@AnnaVölkl所说的解决方案。.希望对您
有所
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.