ECShop The table ‘ecs_sessions’ is full 的处理方法

更新时间:2015-03-05 点击量:3619

完整提示MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => INSERT INTO `cc`.`ecs_sessions` (sesskey, expiry, ip, data) VALUES ('4b5c9bb5f23d7a1cebd1c1f4ad6682ee', '1270728928', '218.74.203.161', 'a:0:{}') ) [2] => Array ( [error] => The table 'ecs_sessions' is full ) [3] => Array ( [errno] => 1114 ) )

打开ecs_sessions表发现里面的数据有好几十页(每页1000)。那怪会提示满了!但是很奇怪,为什么会存在这么多的数据在里面呢。不可能一天有这么多人在访问! 网站运行了好几个月了,没出现这种问题!

这个表是ecshop模拟session存储临时信息用。分析cls_session.php文件,发现自己将session过期日期写的好大,而最近网站的访问量持续增大,造成旧的数据不能及时的清除造成的。将过期时间缩短到一定时间,这个时间根据具体情况而定了。

var $max_life_time = 1000; // SESSION 过期时间

也许有一天,当你访问自己的ecshop网站的时,突然会出现下面错误提示:

MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => INSERT INTO `howjia`.`hsd_sessions` (sesskey, expiry, ip, data) VALUES (’6e29308d833f30446122f49e89023156′, ’1297816061′, ’114.249.213.6′, ‘a:0:{}’) ) [2] => Array ( [error] => The table ‘ecs_sessions’ is full ) [3] => Array ( [errno] => 1114 ) )

不要着急,下面告诉你如何解决:

根据错误提示判断是ecs_sessions表满了,打开phpmyadmin查看了一下表,是个memory表,数据有23800条,删除了一些数据看了一下还是有错误,并且数据项还是不变,由于表是内存表,我重启了一下mysql,网站恢复正常了

后来在网上搜了一下,这个问题可能是网站没有及时清理session内存表造成的。
也许通过程序设置可以解决这个问题。

程序解决方法是:

设置includes/cls_session.php里的var $max_life_time = 1000,

这个数值根据网站访问量的大小来定,访问越大可以设置的越小。



支付宝扫码打赏 微信打赏

如果文章对您有帮助,就打赏一个吧

在线客服

客户服务

热线电话:

0755-36656507 15889489919 服务时间:

周一到周六:9:00-18:00

在线QQ客服

在线微信客服

关于我们 常见问题

支付方式 加盟合作

提交需求
优惠红包 购物车0 反馈留言 返回顶部