2013-02-28 2 views
0

Я пытаюсь переиндексации категории плоских данных, но я всегда встречался с той же ошибкой:Magento повторно индекс, не может создать таблицу

There was a problem with reindexing process. Error Message: SQLSTATE[HY000]: General error: 1005 Can't create table 'xxx.catalog_category_flat_store_6' (errno: 121) 

В таблице не существует, есть a 1 и a 7. Не уверен, что это имеет значение?

После выполнения запроса вручную через phpMyAdmin меня встретила ошибка MySQL 121. Я проверил вокруг, и это предполагает, что имена внешних ключей, которые будут созданы, уже существуют. Я сейчас перечислил все внешние ключи в БД, и они вообще не существуют.

Я также попробовал запустить SHOW ENGINE INNODB STATUS на БД для получения дополнительной информации, но у нас нет прав на просмотр этого, по-видимому.

+0

Имеет ли пользователь magento mysql разрешения «CREATE TABLE»? –

+0

Да, это создало другие в прошлом просто отлично (например, плоские таблицы продуктов) – BenOfTheNorth

+0

Возможно, это могло бы помочь: http://stackoverflow.com/questions/8070336/error-code-1005-sql-state-hy000-cant- create-table-errno-150 –

ответ

1

После получения обновления для личного пользования, мы можем запустить SHOW INNODB STATUS, мы обнаружили, что у нас уже есть существующий индекс, который пытался дублировать эту новую таблицу. Это связано с тем, что мы создавали резервную копию старой версии таблицы, которую пытались создать. Удаление этой копии таблицы позволило Magento правильно переиндексировать и решить нашу проблему.

0

Попробуйте выполнить регистрацию команд sql и отладить, что он пытается сделать, выполнив их вручную. В процессе индексирования обычно есть команда, которая очищает таблицу, а другая - воссоздает ее.

Редактировать /magentoRoot/lib/Varien/Db/Adapter/Pdo/Mysql.php и изменение $ _DEBUG истина и обратите внимание на расположение $ _debugFile (должно быть вар/отлаживать/pdo_mysql.log)

Его лучший для редактирования файла в vi, у браузера, открытого для переиндексации ТОЛЬКО данных категории, сохраните файл в vi: w! а затем запустите индекс, а затем отмените отладку на false.

Затем перейдите к журналу. Это может помочь.

+0

Спасибо! Он не отображал больше информации об ошибках, однако он предоставил запрос. Я попытался запустить его вручную, и он дал мне ошибку mysql, равную 121 – BenOfTheNorth

Смежные вопросы