这几天百蔬网网站访问量有点增加,前台总是提示:MySQL server error report,The table ‘***_sessions’ is full,具体错误提示如下
MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => INSERT INTO `***`.`**_sessions` (sesskey, expiry, ip, data) VALUES (‘4d6a30cea1f4d53cccc1d9ad41f49fa1’, ‘1447465118’, ‘*.62.166.152’, ‘a:0:{}’) ) [2] => Array ( [error] => The table ‘***_sessions’ is full ) [3] => Array ( [errno] => 1114 ) )
后来找到一个方法说是要修改\includes\cls_session.php里面的
var $max_life_time = 1800; // SESSION 过期时间
要缩短这个过期时间,我修改为800。
今天还是出现同样的问题。今天就进服务器看了下数据库的情况,发现是seesion这个表大小为16M,也就是说最大只有16m,看到这个数字,猛然想起,这个是表的大小设置问题,屁颠屁颠跑去mysqld的my.ini,果然发现tmp_table_size已经被定义了,想想也是傻逼,看到这种表满了,第一个反应就应该是去查看mysql的设置啊。修改session的max_life_time会让session时间变短,这样的话,登录之后老是会自动退出,得不偿失啊,马上将max_life_time恢复为原来的默认数值。
默默地将tmp_table_size大小修改为256M,加上一个max_heap_table_size参数也为256M,重启MYSQL,OVER