Magento catalog_product_flat使用Shell重新编制索引时出错,并且无法通过截断表进行更正

Magento catalog_product_flat使用Shell重新编制索引时出错,并且无法通过截断表进行更正,shell,magento,phpmyadmin,Shell,Magento,Phpmyadmin,我正在尝试使用Shell命令在magento中重新索引我的catalog_product_平面表。重新编制索引失败了。出现以下错误 我在这个网站上看到了一个解决方案,可以“截断”目录表,然后重新编制索引。即使如此,使用shell重新索引也失败了。现在catalog_product_flat_1-6的6个表都是空的。网站还在运行,但天知道什么时候。请帮忙 产品平面数据索引进程未知错误:异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1118行大小太大。

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

我在这个网站上看到了一个解决方案,可以“截断”目录表,然后重新编制索引。即使如此,使用shell重新索引也失败了。现在catalog_product_flat_1-6的6个表都是空的。网站还在运行,但天知道什么时候。请帮忙

产品平面数据索引进程未知错误:异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1118行大小太大。所用表类型(不包括BLOB)的最大行大小为65535。您必须将/home/kya/public_html/lib/Zend/Db/Statement/Pdo.php中的一些列更改为TEXT或blob's:228堆栈跟踪:#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/Pdo/Pdo/Mysql.php(110):Zend_Db_Statement->执行(数组)php(300):Varien_Db_Statement_Pdo_Mysql->u 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-Db/Adapter-Abstract-query('ALTER-TABLEquery('ALTER TABLEca..,Array)#6/home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(340):Varien Db_Adapter_Pdo_-Pdo->Mysql query('ALTER TABLE
ca..)#7/home/kya/public#Db/lib/Varien/html/Mysql/php: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_Mysql->addColumn('Catalog_Product…','leg_角度',Array)#9/home/kya/public(html/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/index.php(1390):Mage\u Catalog\u Model\u Resource\u Product\u Flat\u Indexer->prepareFlatTable(1)\10/home/kya/public\u html/app/code/core/Mage/Catalog/Model/Product/Flat/Indexer.php(296):Mage\u Catalog\u Product\u Resource\u Product\u Flat\u Indexer->dexall()\11/home/kya/public\html/app/code/core/Mage/Catalog/Model/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->reindexer()#13/home/kya/public#html/app/code/core/Mage/Index/Model/Process.php(255):Mage_Index_Model_Model_Process reindexer()#14/home/kya/public/Index.php(158):Mage_Index_Model_Process->reindexeverythings()#15/home/kya/public_html/shell/indexer.php(198):Mage_shell_Compiler->run()#16{main

看看这个: 所用表类型(不包括Blob)的最大行大小为65535。您必须将某些列更改为TEXT或Blob's

解决方案:您有太多可搜索的属性。因此在重新索引期间,magento将填充所有属性。 这导致了一场很大的争吵

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


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

catalog\u product\u flat\u*不会重新索引-此处回答的行大小太大->转换为注释的非平凡答案。感谢Satish!很抱歉回复太晚,但您的答案帮助了我。如果您单击此答案,将不胜感激