2009-11-08 93 views
3

我是一名PHP开发人员,我是Rails的新手,但一直都很顺利,一切似乎都非常简单。然而,直到今天早上,我一直在使用SQLite,并决定将我正在构建的东西移植到MySQL中。耙分贝:完美打造的作品,但是当我试图耙分贝:迁移我收到以下错误:MySQL Rails迁移错误:“schema_migration(errno:-1)重命名错误”

rake aborted! Mysql::Error: Error on rename of './test_development/schema_migrations' to './test_development/#sql2-c7b-c' (errno: -1): CREATE UNIQUE INDEX unique_schema_migrations ON schema_migrations (version)

思考,这可能是我在迁移脚本错误,我创建了一个干净的Rails项目从最简单的的表,并得到相同的错误。所以,我重新安装了MySQL和mysql gem,以确保它们没有任何不适,并且我仍然没有运气。以下是我正在运行的版本:

  • 的Rails 2.3.4
  • 的Ruby 1.8.6
  • 的MySQL 5.1.40
  • MySQL的宝石2.8.1

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

感谢,

基兰

UPDATE: 根据要求由Phil这里的结果:

SHOW ENGINE INNODB STATUS

SHOW VARIABLES LIKE 'innodb%'

+1

正如你所说,这可能是一个InnoDB问题。如果你可以发布运行'SHOW ENGINE INNODB STATUS'和'SHOW VARIABLES LIKE'innodb%''的结果,那么有人可能会发现哪里出了问题。 – 2009-11-08 14:10:44

+0

感谢菲尔,根据要求,我更新了我的问题和两个查询的结果。希望它能帮助别人解决问题。 – 2009-11-08 14:38:17

回答

4

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

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

+0

啊!我确实在之前补充说过要解决另一个问题。道歉,并感谢您的帮助! – 2009-11-08 16:13:11