2009-07-30 124 views
15

我有一個新的Rails應用程序,我在Windows 7下創建了一個目錄並輸入「rails newapp」。創作進行得很好,當我訪問根頁面時,一切都很好。但是,當我嘗試訪問將訪問數據庫的頁面時,我得到:「193:%1不是有效的Win32應用程序」使用新的Rails應用程序時的錯誤

193: %1 is not a valid Win32 application. 

在developer.log中。 Mysql在我的機器上運行良好,並且我在其他目錄中運行了其他應用程序,只是這個不起作用。有什麼想法嗎?

+0

我也有這個問題。如果你知道發生了什麼,請發帖。當我發現時,我會做同樣的事情。 – Ryan 2009-08-24 01:30:04

回答

26

下面是對我有效的答案。原來這是一個x64與x32問題和Rails 2.3.2的問題。

我從這裏得到的答覆(http://osdir.com/ml/RubyonRailsTalk/2009-06/msg01775.html):

萬一別人有很多掙扎 我的Windows XP x64的機器上,使用MySQL 5.1.30的(64後有同樣的問題 )和Rails 2.3.2安裝,這個建議g 幫助了我。 從這裏下載libMySql.dll(http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/) 並把它放在ruby \ bin中解決了 的問題。

+1

鏈接解決方案似乎是黑客攻擊。我不喜歡那些看起來像黑魔法的解決方案。難道這對於在Rails中使用64位版本的MySQL(或者只是使用WEBrick)是否真的存在問題?我將繼續通過下載和安裝32位版本的MySQL來進行試驗,而不是從InstantRails軟件包中的版本中混合DLL。 – 2010-07-25 02:16:23

+1

這是一個可以肯定的漏洞 - 這是因爲MySQL對Windows的支持最多隻有幾分之一。 – aronchick 2010-07-26 02:36:20

+0

太棒了!這已經有將近一年了!但是爲什麼Ruby從不解決這個問題?我仍然有問題... GRRRR – Sufendy 2011-05-14 05:35:00

1

如果在驅動器的根目錄中有名爲「Program」的文件,則會發生此錯誤。假設你正在嘗試執行「C:\ Program Files \ SomeApp \ Bin \ SomeExe.Exe」,它會嘗試執行「C:\ Program」(如果存在)。在某些情況下,如果您忘記使用某些命令行命令引用「C:\ Program Files ...」,則會創建具有此名稱的文件。這當然也適用於你D:驅動器等。

如果您嘗試啓動服務,但在其他情況下可能會發生此錯誤。

只需刪除C:\ Program或D:\ Program等文件即可解決問題。

0

已經遇到多個問題,建立與MySQL的Rails的Windows x64上我的建議是:

  • 安裝MySQL的32位版本,不要嘗試使用64位版本。
  • 安裝到不帶空格的路徑,不接受像"下的默認:\ Program Files文件\的MySQL \ MySQL服務器5.5 \ "
  • 安裝MySQL的寶石類似於調用:
      gem install mysql -- --platform=ruby --with-mysql-dir="D:\Programs\MySQL\MySQL-Server-5.5" --with-libmysqllib="D:\Programs\MySQL\MySQL-Server-5.5\lib\"
  • 無論何時安裝新版本的MySQL,一定要卸載/重新安裝gem。
  • 請確保D:\ Programs \ MySQL \ MySQL-Server-5.5 \ lib包含在您的路徑以及D:\ Programs \ MySQL \ MySQL-Server-5.5 \ bin中。確保libmysql.dll的其他副本沒有從路徑的其他位置或ruby安裝目錄中被拾取。

這對我來說是用mysql-5.5.15-win32,mysql-2.8.1-x86-mingw32和Windows 7 x64。

    0

    複製從MySQL安裝目錄中的文件的libmysql.dll並粘貼到你的Ruby安裝的bin目錄。如果您的MySQL安裝目錄尚未包含文件libmysql.dll,則可能需要從http://dev.mysql.com/downloads/mysql/下載zip壓縮文件。

    6

    按照這個博客這裏的方向解決:http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

    ,其中包括使用的MySQL連接http://dev.mysql.com/downloads/connector/c/

    非安裝的版本我無法得到的WEBrick在x64 Windows 7系統上運行 - 有同樣的錯誤

    「193:%1不是有效的Win32應用程序」

    如果我只是替換的文件libmysql.dll的(如上述職位的建議),我得到一個不同的錯誤。

    「不正確的MySQL客戶端庫版本!」

    我的路徑設置是這樣的:C:\ Ruby187 \ BIN; C:\ Program Files文件\的MySQL \ MySQL服務器5.5 \ BIN; C:\ Ruby187 \ LIB \紅寶石\寶石\ 1.8 \寶石\軌-3.1.1 \ BIN

    (並不需要再次改變路徑)在Windows 7

    -2

    使用Ruby(1.8.7)與MySQL(5.5)並且還得到錯誤193. libmySQL.dll複製到ruby/bin對我來說工作得很好。

     
    C:\Work\redmine-2.4.1\config\database.yml content: 
    
    # Default setup is given for MySQL with ruby1.9. If you're running Redmine 
    # with MySQL and ruby1.8, replace the adapter name with `mysql`. 
    # Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end. 
    # Line indentation must be 2 spaces (no tabs). 
    
    production: 
        adapter: mysql 
        database: redmine 
        host: localhost 
        username: root 
        password: "[email protected]" 
        encoding: utf8