mysql使用中遇到一个这样的问题。
假定我在数据库abc里有一张表aaa
然后我往里面写入大量数据>2G
这时候
当我使用表复制功能想把aaa转到备份用的库BAK里时候无论是用mysql administrator 还是用命令行都会提示失败说是 ERR 1114  table is full请问改如何解决?

解决方案 »

  1.   

    磁盘空间够吗  data文件有限制吗
      

  2.   

    为何不考虑直接复制data文件夹里的文件?
      

  3.   

    有高手解决了,我贴出来吧。这几天碰到这个错误。
    至于我改的这几个值是不是正确的解决方法,目前还不知道。先贴出来。
    如果过一段时间我还是没有更新,那以后同志们都参考吧 。
    Out of memory (Needed 16777224 bytes)的错误解决
    看看手册:
    http://dev.mysql.com/doc/refman/5.1/en/memory-storage-engine.html
    开始我更改了query_cache_size的值。
    好像也不行。
    之后
    增大query_cache_limit 的值。
    还有max_heap_table_size
    和tmp_table_size的值。
    因为我们的存储过程中用了好多的预处理语句。而且语句的结果都是非常大的。
    起初我的结果:
    mysql> show variables like 'max_heap_table_size';
    +---------------------------------+----------------------+
    | Variable_name | Value |
    +---------------------------------+----------------------+
    | max_heap_table_size | 16777216 | 
    +---------------------------------+----------------------+mysql> show variables like 'tmp_table_size';
    +---------------------------------+----------------------+
    | Variable_name | Value |
    +---------------------------------+----------------------+
    | tmp_table_size | 16777216 | 
    +---------------------------------+----------------------+我改了my.cnf文件mysql> show variables like 'max_heap_table_size';
    +---------------------------------+----------------------+
    | Variable_name | Value |
    +---------------------------------+----------------------+
    | max_heap_table_size | 67108864 | 
    +---------------------------------+----------------------+mysql> show variables like 'tmp_table_size';
    +---------------------------------+----------------------+
    | Variable_name | Value |
    +---------------------------------+----------------------+
    | tmp_table_size | 67108864 | 
    +---------------------------------+----------------------+顺便看一下这篇文章中的一段话:
    http://dev.mysql.com/tech-resources/articles/mysql-query-cache.htmlQcache_hits and Qcache_inserts shows the number of times a query was serviced from the cache and how many queries have been inserted into the cache. Low ratios of hits to inserts indicate little query reuse or a too-low setting of the query_cache_limit, which serves to govern the RAM devoted to each individual query cache entry. Large query result sets will require larger settings of this variable.补充:
    今天在手册上看到这段话http://dev.mysql.com/doc/refman/5.1/en/out-of-memory.html
    If you issue a query using the mysql client program and receive an error like the following one, it means that mysql does not have enough memory to store the entire query result:所以我把我的所有存储过程都修改了。
    因为里面的预处理语句没有清零。
    经过测试。
    比如:
    里面用到
    PREPARE S1 FROM @STMT;
    ...
    一定要
    SET @STMT = '';
    不知道这个是不是根本原因。我会再次更新的。
    再次证明这样做会减少这种情况。不过下午把所有存储过程修改了。
    凡是普通连接的都改为LEFT JOIN 了。通过EXPLAIN建立了相关索引。
    而且把版本换成了5.0.45。至于是否还是出现错误。还在继续关注中目前没有任何错误。
    这个问题貌似MYSQL官方解决了。
    http://bugs.mysql.com/bug.php?id=31898