SuperTaoer::Thanksgiving

上帝让人类有了感情,有两个目的,一个是解决人类本能的欲望,一个是让本来无味的世界变的美丽起来.

三月 9, 2007

mysql数据库内存表满了解决的方法

文章类别: 程序 技术 — SuperTaoer @ 12:08 pm

今天发现执行mysql的 REPLACE INTO 的时候mysql返回 #1114 - The table ‘xxxx’ is full
这个错误。。。
以前没有遇到过,于是查找资料解决这个问题。。。

得知是由于内存表的大小超过了规定的范围,于是搜索解决方法,
网上提到的有两种解决方法,
一种是修改tmp_table_size参数,另外一种是修改max_heap_table_size参数。。。

我把这两个参数在原有的基础上都增加了一倍,
刚开始是在my.cnf里面配置的,
增加:
tmp_table_size = 64M
max_heap_table_size = 32M
但是总是不成功,后来修改启动脚本,变成:
/usr/local/mysql/bin/safe_mysqld –user=mysql -O tmp_table_size=64M -O max_heap_table_size=32M &

在进入到mysql进行测试。
mysql> SHOW VARIABLES LIKE ‘%max_heap_table_size%’;
+———————+———-+
| Variable_name | Value |
+———————+———-+
| max_heap_table_size | 33553408 |
+———————+———-+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE ‘%tmp_table_size%’;
+—————-+———-+
| Variable_name | Value |
+—————-+———-+
| tmp_table_size | 67108864 |
+—————-+———-+
1 row in set (0.00 sec)

已经更改过来了。。。
注意:修改参数值是按照M单位来计算的。。。



Leave a Message

No Messages

No Messages

RSS feed for comments on this post. TrackBack URI

Leave a Message





本站使用 WordPress架设