mysql数据库错误日志里出现“the table xxx is full”,第一反应是硬盘空间不足了,检查发现硬盘还有很大空间
The table 'xxx' is full
查看'xxx'表,发现该表为内存表,而且表的大小到了2个多G,我设置的是2G,可以通过
mysql> show variables like '%max_heap%';
+---------------------+------------+
| Variable_name | Value |
+---------------------+------------+
| max_heap_table_size | 2097152000 |
+---------------------+------------+
1 row in set (0.00 sec)
解决方法,是删数据还是修改此参数,看实际应用情况了。不过一个内存表能到2G个以上也是不太好的,内存毕竟有限。、
出现此报错原因还有一个,那就是实际操作中,产生的临时表太大了,临时表的大小由参数tmp_table_size决定,默认为16M
可以参考http://blog.chinaunix.net/uid-16844903-id-3026988.html