2009-11-08 91 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