ecshop前台或者后台"ecs_stats\' is marked as crashed&q
今天有一个客户的后台出现了报错:
MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => SELECT COUNT(*) FROM `aizhiyuan`.`ecs_stats` WHERE access_time > 1342339200 ) [2] => Array ( [error] => Table '.aizhiyuanecs_stats' is marked as crashed and should be repaired ) [3] => Array ( [errno] => 145 ) )
乍一看是mysql出错,之后我让客户联系了空间商,但空间商检查下来mysql是好的,于是我们ecshop模板堂给客户自己看了看报错的问题发现是ecs_stats这个表出错了,而stats表的作用在于统计用户访问的页面,因此时间越久也会越来越大,而清空也是没有问题的。
解决方法很简单:进phpmyadmin之后导出本地的stat表,但前缀也必须一致,之后在出问题的数据库管理sql导入就行:
如果你也是ecs_前缀的话可以用下面这段sql语句导入
DROP TABLE IF EXISTS `ecs_stats`;
CREATE TABLE IF NOT EXISTS `ecs_stats` (
`access_time` int(10) unsigned NOT NULL default '0',
`ip_address` varchar(15) NOT NULL default '',
`visit_times` smallint(5) unsigned NOT NULL default '1',
`browser` varchar(60) NOT NULL default '',
`system` varchar(20) NOT NULL default '',
`language` varchar(20) NOT NULL default '',
`area` varchar(30) NOT NULL default '',
`referer_domain` varchar(100) NOT NULL default '',
`referer_path` varchar(200) NOT NULL default '',
`access_url` varchar(255) NOT NULL default '',
KEY `access_time` (`access_time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- 导出表中的数据 `ecs_stats`
--
INSERT INTO `ecs_stats` (`access_time`,
`ip_address`, `visit_times`, `browser`, `system`, `language`, `area`,
`referer_domain`, `referer_path`, `access_url`) VALUES
(1240294063, '0.0.0.0', 196, 'FireFox 3.0.8', 'Windows XP', 'zh-cn',
'IANA', 'http://localhost:8080', '/shoujitiyan/admin/index.php?act=top',
'/shoujitiyan/index.php'),
(1342424619, 'www.baidow.com', 10, 'Internet Explorer 7.0', 'Windows NT', 'zh-CN', 'LAN', '', '', '/jumei273/index.php');