Это фактически не имеет ничего общего с Ruby/Rails, я просто столкнулся с этим сам и имел довольно много проблем с поиском реального ответа.
Проблема заключается в том, что скрипт индекса sphinx пытается создать временную таблицу MySQL при построении индекса. В моем случае у MySQL закончилось дисковое пространство для временной таблицы (по умолчанию /tmp
, мой раздел был всего 2 ГБ)
Поскольку данные добавляются во временную таблицу и диск заполняется, таблица становится поврежденной, поскольку последний бит данных, записанных в таблицу temp, усекается.
Решение состоит в том, чтобы обеспечить диск, на котором MySQL пишет временные таблицы, имеет достаточно места на нем. Я закончил тем, что изменил каталог temp в my.cnf
на другой более крупный раздел. Расположение по умолчанию для файла конфигурации на Debian является /etc/mysql/my.cnf
Добавить:
tmpdir = /var/lib/mysql/tmp
Лучшее место, чтобы поставить его рядом с настройкой datadir
в разделе [mysqld]
.
Вы когда-нибудь исправляли это? Если да, то как? –
еще не определено. Я сделал некоторую работу arround like - удалил некоторые поля из индексации и исправил их временно. –
произошел конфликт между пространством имен между именем таблицы и псевдоним поля –