2

我有一家运行 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)

我可以看到该表实际上存在于数据库中,并且可以从服务器访问。但是,错误报告表明它未找到。

我到目前为止,

-- 清除缓存

-- 重建索引

- 删除表并再次重建索引,以便它自动创建并且确实如此。

任何人都可以请对此有所了解吗?

4

3 回答 3

1

我以前也有过这种情况。这通常发生在数据库在索引过程中崩溃并且表被损坏或删除时。

我这样做:

  1. 如果存在,则从数据库中删除catalog_category_flat_store_1 (完全删除)。

  2. 在新数据库上安装新的 Magento 实例(或使用另一个预先存在的 Magento 数据库)

  3. 从新的(或现有的 Magento 数据库)中,将catalog_category_flat_store_1克隆到您的 Magento 数据库(出现错误的数据库)。

  4. 重新索引您的网站 - 特别是Category Flat Data索引。

于 2013-10-16T14:54:23.107 回答
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')  
于 2013-11-20T18:26:37.583 回答
0

这个问题可以通过重新索引来解决。

您必须运行Catalog Category Flat Reindex

您可以从 Magento 后端执行此操作:系统->索引管理 或通过 ssh。

使用 SSH 转到您的 shell 目录并运行php -f indexer.php -- -reindex catalog_category_flat

希望这对您有所帮助。

于 2016-10-17T12:21:04.063 回答