1

我正在尝试使用 Shell 命令在 magento 中重新索引我的 catalog_product_flat 表。重新索引失败。出现以下错误。

我在这个站点上看到了一个解决方案来“截断”catalog_product_flat_# 表,然后重新索引。即使这样,使用 shell 的重新索引也失败了。现在catalog_product_flat_1-6的6个表都是空的。该网站仍在运行,但天知道到什么时候。请帮助

产品平面数据索引处理未知错误:带有消息“SQLSTATE [42000]”的异常“PDOException”:语法错误或访问冲突:1118 行大小太大。所用表类型的最大行大小(不包括 BLOB)为 65535。您必须将 /home/kya/public_html/lib/Zend/Db/Statement/Pdo.php:228 中的某些列更改为 TEXT 或 BLOB' 堆栈跟踪:#0 /home/kya/public_html/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array) #1 /home/kya/public_html/lib/Varien/Db/Statement/ Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array) #2 /home/kya/public_html/lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array) #3 /home/ kya/public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array) #4 /home/kya/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238 ):ca...', Array) #5 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('ALTER TABLEca...', Array) #6 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(340): Varien_Db_Adapter_Pdo_Mysql->query('ALTER TABLEca...') #7 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(839): Varien_Db_Adapter_Pdo_Mysql->raw_query('ALTER TABLEca...') #8 /home/kya/public_html/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php(799): Varien_Db_Adapter_Pdo_Mysql->addColumn('catalog_product... ', 'leg_angles', Array) #9 /home/kya/public_html/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php(1390): Mage_Catalog_Model_Resource_Product_Flat_Indexer->prepareFlatTable(1) # 10 /home/kya/public_html/app/code/core/Mage/Catalog/Model/Product/Flat/Indexer.php(296): Mage_Catalog_Model_Resource_Product_Flat_Indexer->reindexAll() #11 /home/kya/public_html/app/code/ core/Mage/Catalog/Model/Product/Indexer/Flat.php(336): Mage_Catalog_Model_Product_Flat_Indexer->reindexAll() #12 /home/kya/public_html/app/code/core/Mage/Index/Model/Process.php( 209): Mage_Catalog_Model_Product_Indexer_Flat->reindexAll() #13 /home/kya/public_html/app/code/core/Mage/Index/Model/Process.php(255): Mage_Index_Model_Process->reindexAll() #14 /home/kya/public_html/shell/indexer. php(158): Mage_Index_Model_Process->reindexEverything() #15 /home/kya/public_html/shell/indexer.php(198): Mage_Shell_Compiler->run() #16 {main

4

1 回答 1

0

看看这个:使用的表类型的最大行大小,不包括 BLOB,是 65535。你必须将一些列更改为 TEXT 或 BLOB'

解决方案:您有太多可搜索的属性。因此,重新索引期间的 magento 将填充所有属性。这导致了一个非常大的行。

我建议您删除所有平面表,因为一旦创建了列,它们就不会被删除。

还要确保属性数据类型需要更少的空间。因为行大小是存在问题的地方。

于 2013-03-16T18:18:24.367 回答