Mysql InnoDB错误代码#1025

时间:2011-10-01 07:41:24

标签: mysql innodb

我们在生产服务器中使用Mysql 5.1并尝试运行alter query以将列的数据类型从tinytext更改为varchar(200)。在运行alter query时,我们看到了这个错误: -

  

#1025 - 将'./msging/#sql-123b_ab7634'重命名为'时出错   './msging/outboxes'(错误号:-1)

MySql论坛表明此错误可能是由于外键约束。但是我们的架构没有任何外键。 mysql错误日志显示下面提到的错误。我们通过错误语句中提到的链接但找不到任何有用的东西。什么想法可能会出错?

  

InnoDB:错误:'。/ msging / outboxes.ibd'已经在表空间内存中   缓存
111001 12:40:18 InnoDB:表重命名出错,不能   将msging#sql-123b_ab4828重命名为msgingoutboxes
111001   12:40:18 InnoDB:错误:表msgingoutboxes不存在   InnoDB内部
InnoDB:虽然MySQL是数据字典   试图放弃它。
InnoDB:你复制了.frm的文件吗?   表到了InnoDB:来自另一个的MySQL数据库目录   数据库?
InnoDB:您可以从InnoDB寻找更多帮助:   http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html

1 个答案:

答案 0 :(得分:3)

使用ALTER TABLE重命名表时,会发生以下情况:

  1. 将表格复制到具有随机文件名的新文件。
  2. 对新文件进行了更改。
  3. 使用随机临时文件名重命名旧表。
  4. 重命名新表以取代旧文件。
  5. 删除旧表。
  6. 有关详细信息,请参阅此链接:http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/

    您可以使用innotop获取有关错误的更多详细信息:http://code.google.com/p/innotop/