2009-07-30 130 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