索引索引'users_core'...
错误:index'users_core':sql_range_query:表'/tmp/#sql_ff2_0.MYI'的密钥文件不正确;尝试修复它(DSN = mysql:// root: * @localhost:3306 / myname)
这意味着什么?
我找不到文件'/tmp/#sql_ff2_0.MYI'
我该如何修理?
答案 0 :(得分:1)
这实际上与Ruby / Rails无关,我自己遇到了这个问题并且在找到真正的答案时遇到了很多麻烦。
问题是sphinx索引器脚本在构建索引时尝试创建临时MySQL表。在我的情况下,MySQL用完了临时表的磁盘空间(默认为/tmp
,我的分区只有2GB)
当数据被添加到此临时表并且磁盘已填满时,表会损坏,因为写入临时表的最后一位数据会被截断。
解决方案是确保MySQL正在编写临时表的驱动器上有足够的空间。我最终将my.cnf
中的临时目录更改为另一个更大的分区。 debian上配置文件的默认位置是/etc/mysql/my.cnf
添加:
tmpdir = /var/lib/mysql/tmp
放置它的最佳位置位于datadir
部分的[mysqld]
设置旁边。
答案 1 :(得分:0)
我找不到该文件 '/tmp/#sql_ff2_0.MYI'
这可能是mysql在查询期间创建的一些临时表。
您是否尝试修复在sql_range_query中使用的主表?