1030: Got error N from storage engine(从存储引擎收到错误 N)
MySQL含义
存储引擎(InnoDB/MyISAM)无法完成操作,并返回了底层错误代码。这是对 SQL 层之下的磁盘、文件系统或引擎内部问题的通用报告。括号/消息中的子代码指明了实际原因。
原因
常见原因:磁盘/临时空间已满(例如 errno 28 - No space left on device)、文件权限问题、表文件损坏、InnoDB 表空间问题或操作系统级 I/O 错误。生成大型临时表的排序/分组查询也可能触发。
解决方法
解读子错误代码(在 Linux 上,perror N 会显示其含义,例如 perror 28)。检查磁盘使用情况和 tmpdir 空间;释放空间。确认文件属主/权限。对于 InnoDB,在错误日志中查看详细信息;如果怀疑损坏,运行 CHECK TABLE,必要时进行恢复。优化生成巨大临时结果的查询。
同一数据库的其他条目
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key(表定义不正确;只能有一个自增列,且必须将其定义为键)
- 1055Expression not in GROUP BY (only_full_group_by)(表达式不在 GROUP BY 中)
- 1267Illegal mix of collations(非法的排序规则混用)
- 1197Multi-statement transaction required more than 'max_binlog_cache_size'(多语句事务所需空间超过了 'max_binlog_cache_size')
- 1785Statement violates GTID consistency(语句违反 GTID 一致性)
- 3024Query execution was interrupted, maximum statement execution time exceeded(查询执行被中断,超出最大语句执行时间)
- 1298Unknown or incorrect time zone(未知或不正确的时区)