dspam运维记录


extmail自己在用,发现错误:
Apr 10 07:03:19 mail dspam[1468]: query error: Duplicate entry '1-2288815384906775934' for key 'id_token_data_01': see sql.errors for more details
Apr 10 07:03:19 mail dspam[1468]: bailing on error -2
Apr 10 07:03:19 mail dspam[1468]: received invalid result (!DSR_ISSPAM && !DSR_ISINNOCENT): -2
Apr 10 07:03:19 mail dspam[1468]: process_message returned error -5. delivering.

mysql出现“Incorrect key file for table” 错误!

度娘居然没有给我什么帮助,还是自己想的办法,其实很简单,就是mysql中dspam库的dspam_token_data表文件中token字段记录有重复数据,怎么折腾都白搭,正确的处理方法是:
第一种方法(原有数据不保留了):先stop掉dspamd服务,service dspamd stop,然后清空dspam_token_data的所有数据(我用Navicat for mysql 图形界面做到的),然后在该表上做一个token字段的主键(主键就不会再重复了)。然后重启服务即可。
第二种方法(保留表里原有数据,想办法去掉重复的,然后见token设置成主键):先stop掉dspamd服务,将dspam_token_data导出成“,”分割的txt文件,然后导入到excel,注意将token字段定义成文本格式,否则那数据末尾全部变成0000了(这就是为什么要导出文本,而不导出成excel),可以用excel中“数据”-->“删除重复数据”来清楚重复内容,再将mysql中dspam_token_data表清空,导入这些处理完的数据,恢复dspamd服务,错误没了!


08-20 11:24