2013-04-11 3 views
9

Мы работаем с магазином Magento, имеющим продукты 8k. Индекс привязки не работает. Выброс некоторых ошибок. продукта Ошибка Flat DataИнформация о товаре и каталоге продукта Magento Информация об изделии

Product Flat Data index process unknown error: 
exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1005 Can't create table './bofc_magento/#sql-f22_6554c.frm' (errno: 121)' in /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Db/Statement/Pdo.php:228 
Stack trace: 
#0 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array) 
#1 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array) 
#2 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array) 
#3 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array) 
#4 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('ALTER TABLE `ca...', Array) 
#5 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Varien/Db/Adapter/Pdo/Mysql.php(389): Zend_Db_Adapter_Pdo_Abstract->query('ALTER TABLE `ca...', Array) 
#6 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Varien/Db/Adapter/Pdo/Mysql.php(327): Varien_Db_Adapter_Pdo_Mysql->query('ALTER TABLE `ca...') 
#7 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Varien/Db/Adapter/Pdo/Mysql.php(2548): Varien_Db_Adapter_Pdo_Mysql->raw_query('ALTER TABLE `ca...') 
#8 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php(816): Varien_Db_Adapter_Pdo_Mysql->addForeignKey('FK_CAT_PRD_FLAT...', 'catalog_product...', 'entity_id', 'catalog_product...', 'entity_id', 'CASCADE', 'CASCADE') 
#9 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php(1390): Mage_Catalog_Model_Resource_Product_Flat_Indexer->prepareFlatTable(1) 
#10 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/Catalog/Model/Product/Flat/Indexer.php(296): Mage_Catalog_Model_Resource_Product_Flat_Indexer->reindexAll() 
#11 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/Catalog/Model/Product/Indexer/Flat.php(336): Mage_Catalog_Model_Product_Flat_Indexer->reindexAll() 
#12 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/Index/Model/Process.php(207): Mage_Catalog_Model_Product_Indexer_Flat->reindexAll() 
#13 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/Index/Model/Process.php(253): Mage_Index_Model_Process->reindexAll() 
#14 /var/www/vhosts/beadsofcambay.com/httpdocs/shell/indexer.php(158): Mage_Index_Model_Process->reindexEverything() 
#15 /var/www/vhosts/beadsofcambay.com/httpdocs/shell/indexer.php(198): Mage_Shell_Compiler->run() 
#16 {main} 

Index Каталог Поиск

Catalog Search Index index process unknown error: 
exception 'Zend_Cache_Exception' with message 'Could not determine temp directory, please specify a cache_dir manually' in /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Cache.php:209 
Stack trace: 
#0 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Cache/Backend.php(197): Zend_Cache::throwException('Could not deter...') 
#1 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Cache/Backend/File.php(123): Zend_Cache_Backend->getTmpDir() 
#2 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Cache.php(153): Zend_Cache_Backend_File->__construct(Array) 
#3 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Cache.php(94): Zend_Cache::_makeBackend('File', Array, false, false) 
#4 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Locale/Data.php(940): Zend_Cache::factory('Core', 'File', Array, Array) 
#5 /var/www/vhosts/beadsofcambay.com/httpdocs/lib/Zend/Locale.php(668): Zend_Locale_Data::getContent('en_US', 'date', NULL) 
#6 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php(763): Zend_Locale::getTranslation(NULL, 'date', Object(Zend_Locale)) 
#7 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php(699): Mage_CatalogSearch_Model_Resource_Fulltext->_getStoreDate(1, NULL) 
#8 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php(634): Mage_CatalogSearch_Model_Resource_Fulltext->_getAttributeValue(145, NULL, 1) 
#9 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php(230): Mage_CatalogSearch_Model_Resource_Fulltext->_prepareProductIndex(Array, Array, 1) 
#10 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php(128): Mage_CatalogSearch_Model_Resource_Fulltext->_rebuildStoreIndex(1, NULL) 
#11 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/CatalogSearch/Model/Fulltext.php(83): Mage_CatalogSearch_Model_Resource_Fulltext->rebuildIndex(NULL, NULL) 
#12 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/CatalogSearch/Model/Indexer/Fulltext.php(446): Mage_CatalogSearch_Model_Fulltext->rebuildIndex() 
#13 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/Index/Model/Process.php(207): Mage_CatalogSearch_Model_Indexer_Fulltext->reindexAll() 
#14 /var/www/vhosts/beadsofcambay.com/httpdocs/app/code/core/Mage/Index/Model/Process.php(253): Mage_Index_Model_Process->reindexAll() 
#15 /var/www/vhosts/beadsofcambay.com/httpdocs/shell/indexer.php(158): Mage_Index_Model_Process->reindexEverything() 
#16 /var/www/vhosts/beadsofcambay.com/httpdocs/shell/indexer.php(198): Mage_Shell_Compiler->run() 
#17 {main} 

Оба индекса запускается из командной строки. Я искал обе ошибки, но не нашел подходящих решений.

ответ

1

Усечь плоские данные продукта, а затем снова запустить этот скрипт. Должна быть проблема ограничения внешнего ключа.

+0

Я попробовал эту технику уже. Получение такой же ошибки. – Tsimtsum

+0

есть ли у вас другое представление об этом сообщении об ошибке? – Tsimtsum

+0

1005 Не удается создать таблицу: это происходит, когда внешний ключ относится к таблице, которая не является типом двигателя innodb. Это я испытал один раз. Для этого проверьте Db-механизм с каждой таблицей. – oscprofessionals

3

У меня была такая же проблема несколько дней назад.

1 - Пожалуйста, сделайте резервную копию БД

2 - Выключить Использовать плоский продукт и варианты Категория в Magento и переключиться в индексный режим из продукта плоских данных для ручного обновления;

3 - Теперь зайдите в свою БД. удалите таблицу (каталоги) catalog_product_flat_xx;

4 - Вы должны переиндексировать каталог через SSH. Это должно выглядеть так:

usr/local/bin/php public_html/shell/indexer.php --reindex catalog_product_flat 

Magento создаст новые таблицы для каждого магазина. Я мог бы занять некоторое время.

После этого вы можете активировать опцию Flat products и проверить, может ли Magento делать сам реиндекс.

+0

Я пробовал эти шаги, но не успел. не знаю, что происходит с индексом Magento – Tsimtsum

+0

Ну, это решение должно решить проблему, описанную выше. – medina

1

Я видел эту ошибку, когда я пытался вручную изменить столбцы, которые имели отношение FK (отношение) к нему. Усечение Таблицы с плоскими индексами должны заставить его уйти - также попробуйте DELETE FROM вместо TRUNCATE, если сбой.

Сколько атрибутов установлено видимым на интерфейсе (и добавлено к плоским таблицам)? MySQL имеет предел в 64k за строку, и плохие вещи могут произойти, если вы его сломаете (например, поврежденные таблицы ...)

Вторая ошибка выглядит как неправильная настройка кеша (local.xml) или проблема с разрешениями файла var папка.

+0

У меня усеченный плоский стол продукта много раз. все еще получая такую ​​же ошибку. Для ошибки кэша -/var/cache записывается. – Tsimtsum

+0

Проблемы с плоскими таблицами, как я могу видеть из traceback, связаны с созданием плоского стола. Попробуйте включить отладку SQL (в lib/Varien/DB/Adapter/Pdo/Mysql.php L: 103 и L: 117) и посмотрите, что действительно делает magento в (var)/debug/*. Log. Что касается кеша, можно использовать доступ к оболочке пользователя var/cache - в зависимости от настройки веб-сервера php-код может работать под разными пользователями ... или он не может найти local.xml/config, что очень странно. – nesh

1

Я не смог повторно проиндексировать catalog_product_flat процесс индексации. Проведя день и попробовав несколько решений в Интернете. я смог решить проблему. Ниже приведены шаги.

  1. Создайте клон Magento Db, который сталкивается с проблемой индексирования.
  2. Дамп базы данных во вновь созданную базу данных.
  3. обрезать таблицу catalog_product_flat_1 для одного магазина и для нескольких магазинов будет несколько таблиц catalog_product_flat_*, где * - это идентификатор магазина. Здесь усечь всю эту таблицу.
  4. укажите, что mangento запускает экземпляр для вновь созданной базы данных и настраивает базу данных, чтобы сайт функционировал нормально.
  5. Теперь запустите команду php document_root/shell/indexer.php --reindex catalog_product_flat или попробуйте переиндексировать от администратора.php document_root/shell/indexer.php --reindexall для переиндексации всего процесса.
-1

Я столкнулся с той же проблемой для переиндексации в поиске по каталогу ... через 10 дней я нашел решение.

Поиск по каталогу индекс ошибки я получаю:

exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1785 When @@GLOBAL.ENFORCE_GTID_CONSISTEN CY = 1, updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.'

Решение:

  1. Drop Table catalogsearch_fulltext
  2. Создать снова catalogsearch_fulltext таблицу, используя такие структуры.
  3. Обновить таблицу catalogsearch_query используя упомянутый запрос.

    UPDATE catalogsearch_query SET is_processed = 0

Затем откройте SSH и запустить команду, чтобы заставить его работать снова:

[~/public_html/shell]# php indexer.php reindexall 
Смежные вопросы