1114 (HY000): 表已满

2022-01-30 00:00:00 mysql innodb

我正在尝试通过简单的查询向 InnoDB 表添加一行:

I'm trying to add a row to an InnoDB table with a simply query:

INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills');

但是当我尝试这个查询时,我得到以下信息:

But when I attempt this query, I get the following:

ERROR 1114 (HY000): zip_codes 表已满

ERROR 1114 (HY000): The table zip_codes is full

做一个

SELECT COUNT(*) FROM zip_codes

给了我 188,959 行,考虑到我在同一个数据库中有另一个包含 810,635 行的表,这似乎不算太多.

gives me 188,959 rows, which doesn't seem like too many considering I have another table with 810,635 rows in that same database.

我对 InnoDB 引擎 相当缺乏经验,并且从未遇到过 MyISAM 的这个问题.这里有哪些潜在问题?

I am fairly inexperienced with the InnoDB engine and never experienced this issue with MyISAM. What are some of the potential problems here ?

这只发生在向 zip_codes 表中添加一行时.

This only occurs when adding a row to the zip_codes table.

推荐答案

首先检查,如果您没有用完磁盘空间,然后再解决与配置相关的解决方案.

First check, if you did not run out of disk-space, before resolving to the configuration-related resolution.

您的 my.cnf 中的 innodb_data_file_path 的最大大小似乎太小了,在这个例子中

You seem to have a too low maximum size for your innodb_data_file_path in your my.cnf, In this example

innodb_data_file_path = ibdata1:10M:autoextend:max:512M

你不能在所有 innodb 表中托管超过 512MB 的数据.

you cannot host more than 512MB of data in all innodb tables combined.

也许您应该使用 innodb_file_per_table 切换到 innodb-per-table 方案.

Maybe you should switch to an innodb-per-table scheme using innodb_file_per_table.

相关文章