我正在尝试通过简单的查询将行添加到InnoDB表中:INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills');但是,当我尝试此查询时,得到以下信息:ERROR 1114 (HY000): The table `zip_codes` is full进行“ SELECT COUNT(*)FROM zip_codes”会给我188,959行,考虑到我在同一数据库中有另一个包含810,635行的表,这似乎不算太多。我对InnoDB引擎缺乏经验,并且从未在MyISAM上遇到此问题。这里有哪些潜在问题?编辑:这仅在向zip_codes表添加一行时发生。
3 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
编辑:在解决与配置有关的分辨率之前,请先检查是否没有用完磁盘空间。
在此示例中innodb_data_file_path,您的最大尺寸似乎太小my.cnf
innodb_data_file_path = ibdata1:10M:autoextend:max:512M
您在所有innodb表组合中所承载的数据不能超过512MB。
也许您应该使用切换到每表一个innodb方案innodb_file_per_table。
qq_笑_17
TA贡献1818条经验 获得超7个赞
您需要修改my.cnf中为INNO_DB表设置的限制上限。没有为单个表设置此内存限制,而是为所有组合表设置了此内存限制。
如果您希望内存自动扩展到512MB
innodb_data_file_path = ibdata1:10M:autoextend:max:512M
如果您不知道限制或不想设置限制上限,可以像这样修改它
innodb_data_file_path = ibdata1:10M:autoextend
蓝山帝景
TA贡献1843条经验 获得超7个赞
您可能在存储mysql表的分区(通常为/ var / lib / mysql)或存储临时表的分区(通常为/ tmp)中空间不足。
您可能需要:-在创建索引期间监视可用空间。-将tmpdir MySQL变量指向其他位置。这需要重新启动服务器。
添加回答
举报
0/150
提交
取消