Error number: MY-012939; Symbol: ER_IB_MSG_1114; SQLSTATE: HY000
Message: %s
错误说明:
MY-012939 全称为 ER_IB_MSG_1114,是 MySQL 产生的操作出错消息,表示 InnoDB 存储引擎无法执行要求的操作。
此错误通常发生在使用了不支持的 mutexes 锁(如 GCC/Intel TBB)的 Linux 操作系统,并且在尝试使用 InnoDB 引擎时,数据库会抛出此错误。
另外,此错误也发生在在正在重新启动的服务器上,或者是执行 ALTER TABLE 命令时,尝试修改或添加索引,或者添加外键时,都可能导致 ER_IB_MSG_1114 错误。
解决方法:
1. 如果是因为 Linux 操作系统特定锁导致的,可以尝试通过指定 `innodb_use_native_aio=0` 来解决。
2. 如果是在重启服务器或更新索引时发生,则应该先检查存储引擎文件(.frm)以及表空间文件(.ibd)的状态,同时要确保 InnoDB 工作空间(innodb_log_group_home_dir)也在正确的目录中可以被正常访问。
3. 如果先前的 ALTER TABLE 操作,是不安全的,没有权限就试图修改,则可能需要重启数据库,并删除所有的 InnoDB 缓存(ib_logfile*等文件)才能恢复运行。
4. 如果 MySQL 服务本身存在问题,建议删除所有 InnoDB 缓存和旧日志,重新启动服务,并确保当前系统正确地支持 InnoDB 引擎。