CactiEZ无法出图了,查看cacti日志发现好多错误,大部分类似以下两个,都是与cacti数据库的表有关系。
CMDPHP: Poller[0] ERROR: SQL Row Failed!, Error:'144', SQL:"SHOW CREATE TABLE 'cacti'.'syslog'
或者:
CMDPHP: Poller[0] ERROR: SQL Assoc Failed!, Error:'145', SQL:"select poller_output.output, poller_output.time, poller_output.local_data_id, poller_item.rrd_path, poller_item.rrd_name, poller_item.rrd_num from (poller_output,poller_item) where (poller_output.local_data_id=poller_item.local_data_id and poller_output.rrd_name=poller_item.rrd_name) LIMIT 10000"
分别是144和145错误,都是数据库的某张表有问题了,登录mysql:mysql -uroot -p cacti,密码为空。
进入数据库执行相同的命令,提示如下错误:ERROR 144 (HY000): Table './cacti/syslog' is marked as crashed and last (automatic?) repair failed
原来是该表已经损坏,参考: http://www.kuqin.com/database/20090811/66473.html
进入mysql的数据库目录(CactiEZ默认在/var/lib/mysql/cacti),执行下面的命令:
myisamchk -c -r ./syslog.MYI
执行后将会出现下列信息:
- recovering (with sort) MyISAM-table './syslog.MYI'
Data records: 5206
- Fixing index 1
- Fixing index 2
- Fixing index 3
- Fixing index 4
- Fixing index 5
Data records: 5207
重启mysql数据库即恢复正常。