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