Перестроение индекса занимает целую вечность и не завершается
Я пытаюсь перестроить индексы, но это занимает целую вечность и не завершает процесс. Он застревает на плоских данных продукта с сообщением ОБРАБОТКА без другого журнала ошибок или сообщения. Я пытался очистить журнал и другие таблицы БД в качестве обслуживания и оптимизации, но это совсем не помогло. Мы находимся на VPS с более чем 30000 артикулами. Пожалуйста, пожалуйста, посмотрите на скриншот ниже и дайте мне знать, есть ли другие варианты решения этой проблемы. У меня есть уже перепробовал все предложенные варианты на различных форумах.
Команда: php indexer.php --статус
[thestati@server shell]$ php indexer.php --status
Product Attributes: Pending
Product Prices: Pending
Catalog URL Rewrites: Running
Product Flat Data: Running
Category Flat Data: Require Reindex
Category Products: Require Reindex
Catalog Search Index: Require Reindex
Stock Status: Pending
Tag Aggregation Data: Require Reindex
Default Values: Pending
Команда: php indexer.php --reindex catalog_category_flat
[thestati@server shell]$ php indexer.php --reindex catalog_category_flat
Я получаю следующую ошибку:
PS: В БД нет таблицы с именем catalog_category_flat_store_1
, хотя у меня есть catalog_category_flat_store_2
и catalog_category_flat_store_3
.
SET FOREIGN_KEY_CHECKS=0;# MySQL returned an empty result set (i.e. zero rows). TRUNCATE TABLE catalog_product_flat_1;# MySQL returned an empty result set (i.e. zero rows). SET FOREIGN_KEY_CHECKS=1;# MySQL returned an empty result set (i.e. zero rows).
Category Flat Data index process unknown error:
exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1005 Can't create table 'thestati_magento.catalog_category_flat_store_1' (errno: -1)' in /home/thestati/public_html/catalog/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /home/thestati/public_html/catalog/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /home/thestati/public_html/catalog/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /home/thestati/public_html/catalog/lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /home/thestati/public_html/catalog/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /home/thestati/public_html/catalog/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('CREATE TABLE `c...', Array)
#5 /home/thestati/public_html/catalog/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('CREATE TABLE `c...', Array)
#6 /home/thestati/public_html/catalog/lib/Varien/Db/Adapter/Pdo/Mysql.php(2039): Varien_Db_Adapter_Pdo_Mysql->query('CREATE TABLE `c...')
#7 /home/thestati/public_html/catalog/app/code/core/Mage/Catalog/Model/Resource/Category/Flat.php(604): Varien_Db_Adapter_Pdo_Mysql->createTable(Object(Varien_Db_Ddl_Table))
#8 /home/thestati/public_html/catalog/app/code/core/Mage/Catalog/Model/Resource/Category/Flat.php(1418): Mage_Catalog_Model_Resource_Category_Flat->_createTable('1')
#9 /home/thestati/public_html/catalog/app/code/core/Mage/Catalog/Model/Resource/Category/Flat.php(1431): Mage_Catalog_Model_Resource_Category_Flat->_createTables()
#10 /home/thestati/public_html/catalog/app/code/core/Mage/Catalog/Model/Category/Indexer/Flat.php(246): Mage_Catalog_Model_Resource_Category_Flat->reindexAll()
#11 /home/thestati/public_html/catalog/app/code/core/Mage/Index/Model/Process.php(209): Mage_Catalog_Model_Category_Indexer_Flat->reindexAll()
#12 /home/thestati/public_html/catalog/app/code/core/Mage/Index/Model/Process.php(255): Mage_Index_Model_Process->reindexAll()
#13 /home/thestati/public_html/catalog/shell/indexer.php(159): Mage_Index_Model_Process->reindexEverything()
#14 /home/thestati/public_html/catalog/shell/indexer.php(199): Mage_Shell_Compiler->run()
#15 {main}
1 answers
Попробуйте выполнить индексацию из командной строки /ssh. Ваш VPS должен обладать такой функциональностью.
Выполните следующие действия из вашей /magento_установки/оболочки
Проверка статуса, если индексы:
php indexer.php --status
Чтобы переиндексировать индекс проблемы, в вашем случае плоские данные продукта
php indexer.php --reindex catalog_product_flat
Дополнительная информация: Как обрабатывать индексы Magento из командной строки
Если в это время возникает ошибка, может возникнуть проблема с вашей конфигурацией mysql или с самой базой данных. Не стесняйтесь размещать соответствующую информацию.
ОБНОВЛЕНИЕ НА ОСНОВЕ НОВОЙ ИНФОРМАЦИИ
Я столкнулся именно с этой проблемой в прошлом году. Вам необходимо создать резервную копию вашей базы данных и получить доступ через phpmyadmin.
В итоге я отбросил таблицы (таблицы) (или вы можете их ОБРЕЗАТЬ).
catalog_product_flat_1
catalog_product_flat_2
Затем используйте indexer.php для переиндексации.
Вы можете узнать больше об этом здесь