Magento catalog_product_flat使用Shell重新索引错误,并且没有通过截断表来纠正错误

时间:2013-03-16 07:45:00

标签: shell magento phpmyadmin

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

我在这个网站上看到一个解决方案'截断'catalog_product_flat_#表,然后重新索引。即使这样,使用shell的reindex也失败了。现在,catalog_product_flat_1-6的所有6个表都是空的。该网站仍在运行,但天知道直到何时。 PLS帮助

产品平面数据索引进程未知错误:异常'PDOException',消息'SQLSTATE [42000]:语法错误或访问冲突: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):Zend_Db_Adapter_Abstract-> query('ALTER TABLE ca...', Array) #5 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('ALTER TABLE ca ...',Array)#6 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php (340):Varien_Db_Adapter_Pdo_Mysql-> query('ALTER TABLE ca...') #7 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(839): Varien_Db_Adapter_Pdo_Mysql->raw_query('ALTER TABLE ca ...')#8 / home / kya / public_html / app / code / core / Mage / Catalog / Model / Resource / Product / Flat /Indexer.php(799):Varien_Db_Adapter_Pdo_Mys ql-> addColumn('catalog_product ...','leg_angles',数组)#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

1 个答案:

答案 0 :(得分:0)

看看这个: 使用的表类型的最大行大小(不计算BLOB)是65535.您必须将某些列更改为TEXT或BLOB'

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

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

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