1114 (HY000):表已满

2021-11-20 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.

相关文章