我有一个运行Magento CE 1.7的现有商店。从今天早上突然(没有任何代码更新),我收到以下错误 -
a:5:{i:0; s:111:“SQLSTATE [42S02]:未找到基表或视图:1146表'XXXXXX.catalog_category_flat_store_1'不存在”; i:1; s :5914:“#0 /var/www/lib/Varien/Db/Statement/Pdo/Mysql.php(110):Zend_Db_Statement_Pdo-> _execute(Array)
我可以看到该表实际存在于数据库中,可以从服务器访问。但是,错误报告表明找不到它。
我到目前为止,
- 清除缓存
- 重建索引
- 删除了表并再次重建了索引,以便自动创建它并且确实如此。
任何人都可以对此有所了解吗?
答案 0 :(得分:1)
我之前发生过这种情况。这通常发生在数据库在索引过程中崩溃,并且表被损坏或删除时。
我这样做:
从数据库中删除 catalog_category_flat_store_1 (如果存在)(完全删除)。
在新数据库上安装新的Magento实例(或使用其他预先存在的Magento数据库)
从新的(或现有的Magento数据库)中,将 catalog_category_flat_store_1 克隆到您的Magento数据库(出现错误的数据库)。
重新索引您的网站 - 特别是Category Flat Data
索引。
答案 1 :(得分:0)
昨天晚上我遇到了同样的问题,但是这个表似乎存在并且今天正常使用/更新。也许它已经崩溃并且mysql自动修复它(但我不确定),但它再次正常运行。
休息日志:
#1 /public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `main_table`.* FROM `catalog_category_flat_store_1` AS `main_table` WHERE (entity_id IN ('258', '38', '3', '1')) AND (custom_use_parent_settings = 0) AND (level != 0) ORDER BY `level` DESC', Array)
#3 public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(337): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `main_table`.* FROM `catalog_category_flat_store_1` AS `main_table` WHERE (entity_id IN ('258', '38', '3', '1')) AND (custom_use_parent_settings = 0) AND (level != 0) ORDER BY `level` DESC', Array)
#4 public_html/lib/Zend/Db/Adapter/Abstract.php(753): Varien_Db_Adapter_Pdo_Mysql->query(Varien_Db_Select, Array)
#5 public_html/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat.php(1108): Zend_Db_Adapter_Abstract->fetchRow(Varien_Db_Select)
#6 public_html/app/code/core/Mage/Catalog/Model/Category.php(841): Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Flat->getParentDesignCategory(Mage_Catalog_Model_Category)
#7 public_html/app/code/core/Mage/Catalog/Model/Design.php(348): Mage_Catalog_Model_Category->getParentDesignCategory(Mage_Catalog_Model_Category)
#8 public_html/app/code/core/Mage/Catalog/Helper/Product/View.php(49): Mage_Catalog_Model_Design->getDesignSettings(MDN_AdvancedStock_Model_Catalog_Product)
#9 public_html/app/code/core/Mage/Catalog/Helper/Product/View.php(144): Mage_Catalog_Helper_Product_View->initProductLayout(MDN_AdvancedStock_Model_Catalog_Product, Mage_Catalog_ProductController)
#10 public_html/app/code/core/Mage/Catalog/controllers/ProductController.php(132): Mage_Catalog_Helper_Product_View->prepareAndRender(3790, Mage_Catalog_ProductController, Varien_Object)
#11 public_html/app/code/local/Mage/Core/Controller/Varien/Action.php(422): Mage_Catalog_ProductController->viewAction()
#12 public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(253): Mage_Core_Controller_Varien_Action->dispatch('view')
#13 public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Mage_Core_Controller_Request_Http)
#14 public_html/app/code/core/Mage/Core/Model/App.php(340): Mage_Core_Controller_Varien_Front->dispatch()
#15 public_html/app/Mage.php(627): Mage_Core_Model_App->run(Array)
#16 public_html/index.php(80): Mage->run('', 'store')
答案 2 :(得分:0)
可以通过重建索引解决此问题。
您必须运行目录类别Flat Reindex 。
您可以从Magento后端执行此操作:系统 - > 索引管理 或通过ssh。
使用SSH转到shell目录并运行php -f indexer.php -- -reindex catalog_category_flat
希望这会对你有所帮助。