Мышление Сфинкса: Ошибка при индексации - PullRequest
2 голосов
/ 20 января 2011

индексирование индекса 'users_core' ...
ОШИБКА: индекс 'users_core': sql_range_query: неверный ключевой файл для таблицы '/tmp/#sql_ff2_0.MYI'; попробуйте восстановить его (DSN = mysql: // root: * @ localhost: 3306 / myname)

Что это значит?
Я не могу найти файл '/tmp/#sql_ff2_0.MYI'
Как мне его починить?

Ответы [ 2 ]

1 голос
/ 26 февраля 2013

Это на самом деле не имеет ничего общего с Ruby / Rails, я просто столкнулся с этим сам и столкнулся с большими трудностями при поиске реального ответа.

Проблема заключается в том, что скрипт индексатора sphinx пытается создатьвременная таблица MySQL при построении индекса.В моем случае MySQL исчерпал место на диске для временной таблицы (по умолчанию /tmp, мой раздел был только 2 ГБ)

Когда данные добавляются в эту временную таблицу и диск заполняется, таблица становится поврежденной,потому что последний бит данных, записанных во временную таблицу, усекается.

Решение состоит в том, чтобы обеспечить диск, на котором MySQL записывает временные таблицы, чтобы на нем было достаточно места.Я закончил тем, что изменил временный каталог в my.cnf на другой больший раздел.Расположение по умолчанию для файла конфигурации в Debian: /etc/mysql/my.cnf

Добавить:

tmpdir = /var/lib/mysql/tmp

Лучшее место для его размещения - рядом с настройкой datadir в[mysqld] раздел.

0 голосов
/ 27 января 2011

Я не могу найти файл '/tmp/#sql_ff2_0.MYI'

Возможно, это временная таблица, создаваемая mysql во время запроса.

Сделалвы пытаетесь восстановить основную таблицу, которую вы используете в sql_range_query?

...