目前状态..
这个数据库
含有4840多个表,其中4800个表共含有 数据  1100W少一点,
然后有36个表   含有1100W 少一点然后我用java程序处理其中36个表,将他们的数据又存入  新的 36个表里面意思就是一共有3300w记录..以前运行没问题,但是自从 有次我同时运行 2个java程序以后..就出现了 the table 'my_table' is full   (数据库存在my_table表)过了两天.这个异常又变成
the table   '#sql-xx' is full (数据库不存在#sql-xx表)然后在mysql的data目录中..我发现  ibdata1  文件(应该就是保存数据的文件吧) 已经达到  3.99G ..
(为什么mysql不创建第二个保存数据的文件--如ibdata2 ........)我是windows Xp (好像单个文件4G?) ,数据表创建的时候表格是 MyIs.....现在根本不知道咋办了?网上用的修改  tem_table_size=64Mmax_heap_table_size=32M
我也用了..现在不知道杂办了..!!
知道的前辈给点意见啊...

解决方案 »

  1.   

    表的引擎是MYISAM?
    repair table table_name试试
      

  2.   

    用 show table status like 'tbl_name'\G
    贴结果
    ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=123
      

  3.   

    XP上如果你用的NTFS则可以到达 4T, 但如果是FAT/FAT32则单个文件只能到 4G
      

  4.   

    如果你是NTFS,则可以做以下操作。在默认情况下,MySQL创建的MyISAM表允许的最大尺寸为4GB。你可以使用SHOW TABLE STATUS语句或myisamchk -dv tbl_name检查表的最大尺寸。如果需要使用大于4GB的MyISAM表(而且你的操作系统支持大文件),可使用允许AVG_ROW_LENGTH和MAX_ROWS选项,可以使用ALTER TABLE更改这些选项,以增加表的最大允许容量。
      

  5.   

    谢谢各位.
    4GB的限制是对于每一个表?---如果是.我每一个表的数据远远不到1个G吧..一个表最多也就30w条记录还是一个mysql存储的数据最多只能是4GB?应该不会吧我是Fat32的格式
      

  6.   

    Fat32:最大2G,你最好转换为NTFS格式
      

  7.   

    show table status like 'fenci_merger_4'  "fenci_merger_4","InnoDB",10,"Compact",158001,373,59015168,0,0,0,NULL,"2009-04-14 21:27:12",NULL,NULL,"utf8_general_ci",NULL,"max_rows=1000000000","InnoDB free: 143360 kB"
      

  8.   

    innodb引擎
    试试
    1. shut down mysqld cleanly
    2. remove ib_logfile* files in your mysql data directory, which is possibly /var/lib/mysql 
    innodb_data_file_path = ibdata1:10M:autoextend3. restart mysqld again and check all tables are fine. 
      

  9.   

    ibdata1  是innodb的一个文件。
    一般这个文件大小不会减少只会增加,不过你删除记录后可以用 optimize table <table name>, 让mysql优化一下,但这个操作比较耗时已经3.99G了,当然有没办法继续再增长了。
      

  10.   


    分析的相当对,已经达到限制度了,所以会提示FULL了!这个你得改一下子!或创建另一个存储区域!
      

  11.   

    我昨天将盘改为了 ntfs了..
    现在不会出现  table ... is full了!!但是我想知道一下有没有其他的方法?比如楼上说的 怎么创建另一个  存储区域??
      

  12.   

    创建另一个  存储区域?? :如果依然是FAT32格式的话,依然会出问题
      

  13.   

    不会吧?
    那意思就是    如果系统文件系统是fat32的话..
    mysql就只能创建一个存储内容的  ibdata1  文件??
    因为 就象我帖子所说的..
    mysql似乎不会创建一个新的存储数据的文件?
      

  14.   

    指定 InnoDB 只建立一个最初大小为 100 MB 并且当表空间被用尽时以 8MB 每块增加的数据文件。如果硬盘空间不足,可以再添加一个数据文件并将其放在其它的硬盘中。 举例来说:先检查硬盘空间的大小,设定 ibdata1 文件使它接近于硬盘空余空间大小并为 1024 * 1024 bytes (= 1 MB)的倍数, 将 ibdata1 明确地指定在 innodb_data_file_path 中。在此之后可以添加另一个数据文件:innodb_data_home_dir =
    innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend注意:设定文件大小时一定要注意你的OS是否有最大文件尺寸为2GB的限制!InnoDB是不会注意你的OS文件尺寸限制的, 在一些文件系统中你可能要设定最大容量限制:innodb_data_home_dir =
    innodb_data_file_path = /ibdata/ibdata1:100M:autoextend:max:2000M
      

  15.   

    怎么创建另一个  存储区域??在你的my.ini文件中自已加一下。innodb_data_file_path=c:mysql/data/ibdata1:50M;c:mysql/data/ibdata2:50M:autoextend或者到mySQL administrator 中通过GUI到startup variable 的 innoDB parameters中设置一下。
      

  16.   

    15.2.7. 添加和删除InnoDB数据和日志文件
    http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#adding-and-removing