【问题标题】:MySQL Rails migration error: "Error on rename of schema_migration (errno: -1)"MySQL Rails 迁移错误:“重命名 schema_migration 时出错(错误号:-1)”
【发布时间】:2009-11-08 12:58:19
【问题描述】:

我是一名 PHP 开发人员,我是 Rails 的新手,但一直进展顺利,一切似乎都很简单。然而,直到今天早上,我一直在使用 SQLite,并决定将我正在构建的内容转移到 MySQL。 rake db:create 完美运行,但是当我尝试 rake db:migrate 时出现以下错误:

rake 中止! Mysql::Error: 错误 重命名 './test_development/schema_migrations' 到'./test_development/#sql2-c7b-c' (errno: -1): 创建唯一索引 unique_schema_migrationsschema_migrations (version)

考虑到这可能是我的迁移脚本中的错误,我用最简单的表创建了一个干净的 rails 项目并得到了同样的错误。所以,我重新安装了 MySQL 和 mysql gem,以确保它们都没有问题,但我仍然没有运气。这是我正在运行的版本:

  • Rails 2.3.4
  • Ruby 1.8.6
  • MySQL 5.1.40
  • MySQL Gem 2.8.1

我感觉它可能与 InnoDB 相关,因为我之前在这个盒子上遇到过该引擎的问题。但是,如果有人可以帮助我,我将非常感激,因为它阻止了我的进步。

谢谢,

基兰

更新: 根据 Phil 的要求,结果如下:

SHOW ENGINE INNODB STATUS

SHOW VARIABLES LIKE 'innodb%'

【问题讨论】:

  • 如你所说,这可能是一个 InnoDB 问题。如果您可以发布运行 SHOW ENGINE INNODB STATUSSHOW VARIABLES LIKE 'innodb%' 的结果,那么有人可能会发现问题所在。
  • 谢谢菲尔,根据要求,我已经用两个查询的结果更新了我的问题。希望它可以帮助某人解决问题。

标签: mysql ruby-on-rails ruby rubygems


【解决方案1】:

您已将 innodb_force_recovery 选项设置为 6。这可能已从默认值 0 更改为修复较早的问题。在这种模式下,除了SELECTCREATE TABLEDROP TABLE,InnoDB 不会允许任何其他内容。

尝试关闭 MySQL,然后编辑您的 my.cnf 文件。将 innodb_force_recovery 设置为 0(或删除该选项),然后重新启动 MySQL。

【讨论】:

  • 啊!我确实在以前的场合添加了它来解决另一个问题。抱歉,感谢您的帮助!
猜你喜欢
  • 2013-11-09
  • 2017-09-26
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
相关资源
最近更新 更多