为了账号安全,请及时绑定邮箱和手机立即绑定

错误1114(HY000):表已满

错误1114(HY000):表已满

叮当猫咪 2019-10-09 14:52:28
我正在尝试通过简单的查询将行添加到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。


查看完整回答
反对 回复 2019-10-09
?
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


查看完整回答
反对 回复 2019-10-09
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

您可能在存储mysql表的分区(通常为/ var / lib / mysql)或存储临时表的分区(通常为/ tmp)中空间不足。


您可能需要:-在创建索引期间监视可用空间。-将tmpdir MySQL变量指向其他位置。这需要重新启动服务器。


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 796 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信