解决mysql的内存表“table is full”异常

解决mysql的内存表“table is full”错误

今天中午收到mysql错误日志监控发来的警报,错误日志如下:

101209 13:13:32 [ERROR] /usr/local/mysql/bin/mysqld: The table ‘test_1291870945841162′ is full

101209 13:13:32 [ERROR] /usr/local/mysql/bin/mysqld: The table ‘test_1291870945841162′ is full

101209 13:13:32 [ERROR] /usr/local/mysql/bin/mysqld: The table ‘test_1291870945841162′ is full

101209 13:13:32 [ERROR] /usr/local/mysql/bin/mysqld: The table ‘test_1291870945841162′ is full

通过查询mysql官方站点:

http://dev.mysql.com/doc/refman/5.0/en/full-table.html 得知:

因为系统是linux,不存在操作系统和文件格式的限制,通过表的名字可以得知,该表应该是个临时表,再说数据库里面也查不到该表。

有这一句话很重要:

You are using the MEMORY (HEAP) storage engine; in this case you need to increase the value of the max_heap_table_size system variable. See Section 5.1.3, “Server System Variables”.

于是就修改Mysql的配置文件/etc/my.cnf,在[mysqld]下添加/修改两行:

tmp_table_size = 256M

max_heap_table_size = 256M

系统默认是16M,别忘记重新启动mysql,你也可以在线动态修改该参数,经过这几天的观察,这个世界安静了许多。

解决mysql的内存表“table is full”异常

相关文章:

你感兴趣的文章:

标签云: