【问题标题】:"193: %1 is not a valid Win32 application" bug with a new Rails Application新 Rails 应用程序的“193:%1 不是有效的 Win32 应用程序”错误
【发布时间】:2010-11-15 12:49:16
【问题描述】:

我有一个新的 Rails 应用程序,我在 Windows 7 下通过进入一个目录并键入“rails newapp”来创建它。创建很顺利,当我访问根页面时,一切都很好。但是,当我尝试访问将访问数据库的页面时,我得到了这个:

193: %1 is not a valid Win32 application.

在 developer.log 中。 Mysql 在我的机器上运行良好,并且我在其他目录中运行了其他应用程序,只是这个不起作用。有什么想法吗?

【问题讨论】:

  • 我也遇到了这个问题。如果您发现发生了什么,请发布。如果/当我发现时,我会做同样的事情。

标签: mysql windows ruby windows-7


【解决方案1】:

在 Windows 7 上将 Ruby (1.8.7) 与 MySQL(5.5) 一起使用,并且还出现错误 193。 libmySQL.dll 复制到 ruby​​ /bin 对我来说效果很好。

C:\Work\redmine-2.4.1\config\database.yml 内容: # 使用 ruby​​1.9 为 MySQL 提供默认设置。如果您正在运行 Redmine # 对于 MySQL 和 ruby​​1.8,将适配器名称替换为 `mysql`。 # PostgreSQL、SQLite3 和 SQL Server 的示例可以在最后找到。 # 行缩进必须是 2 个空格(没有制表符)。 生产: 适配器:mysql 数据库:redmine 主机:本地主机 用户名:root 密码:“pwd@123” 编码:utf8

【讨论】:

    【解决方案2】:

    按照此博客上的说明解决了: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 Server 5.5\bin;C:\Ruby187\lib\ruby\gems\1.8\gems\rails-3.1.1 \bin

    (无需再次更改路径)

    【讨论】:

      【解决方案3】:

      从 MySQL 安装目录复制文件 libmysql.dll 并将其粘贴到 Ruby 安装的 bin 目录中。如果您的 MySQL 安装目录尚未包含文件 libmysql.dll,您可能需要从 http://dev.mysql.com/downloads/mysql/ 下载 zip 存档。

      【讨论】:

        【解决方案4】:

        在 Windows x64 上使用 Rails 设置 MySQL 时遇到了多个问题,我的建议是:

        • 安装32位版本的MySQL,不要尝试使用64位版本。
        • 安装到没有空格的路径中,不要接受像“C:\Program Files\MySQL\MySQL Server 5.5\”这样的默认值
        • 安装 MySQL gem 的调用类似于:
           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。

          【讨论】:

          • 嗯,不,它没有,这只是通过“不是有效的 Win32...”,它仍然在 db:create 上出现段错误,请参阅stackoverflow.com/questions/5020152/… 这肯定是坏的,复制了像其他人一样来自 InstantRails 的 libMySql.dll。
          【解决方案5】:

          如果您的驱动器根目录中有一个名为“Program”的文件,则会发生此错误。例如,假设您正在尝试执行“C:\Program Files\SomeApp\Bin\SomeExe.Exe”,它会尝试执行“C:\Program”(如果存在)。在某些情况下,如果您忘记使用某些命令行命令引用“C:\Program Files...”,则会创建具有此名称的文件。这当然也适用于你 D: drive 等。

          如果您尝试启动服务,通常会出现此错误,但在其他情况下可能会出现。

          只需删除文件 C:\Program 或 D:\Program 等即可解决问题。

          【讨论】:

          • 嗨---这对我来说不是问题,因为我的驱动器根目录上没有这样的程序。
          【解决方案6】:

          这是对我有用的答案。原来这是 x64 与 x32 问题和 Rails 2.3.2 的问题。

          我从这里得到的答案 (http://osdir.com/ml/RubyonRailsTalk/2009-06/msg01775.html):

          万一其他人有同样的情况 经过很多努力后的问题 我的 Windows XP x64 机器,带有 MySQL 安装了 5.1.30 (x64) 和 Rails 2.3.2,以上建议g 帮助过我。 从这里下载 libMySql.dll (http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/) 并将其放入 ruby​​\bin 解决了 问题。

          【讨论】:

          • 链接到的解决方案似乎是一个 hack。我对看起来像黑魔法的解决方案不满意。将 64 位版本的 MySQL 与 Rails 一起使用(或仅与 WEBrick 一起使用),这真的不是一个问题吗?我将通过下载和安装 32 位版本的 MySQL 来继续试验,而不是从 InstantRails 包中的版本中混入 DLL。
          • 可以肯定的是,这是一个 hack - 这是因为 MySQL 对 Windows 的支持充其量是参差不齐的。
          • 太棒了!这已经存在了将近一年!但为什么 Ruby 从来不解决这个问题?我仍然有问题... GRRRR
          • 这个解决方案现在似乎已经过时了。
          • 是的,本教程中的步骤使它对我有用:blog.mmediasys.com/2011/07/07/…
          猜你喜欢
          • 1970-01-01
          • 2017-01-07
          • 1970-01-01
          • 1970-01-01
          • 2019-08-10
          • 2017-03-16
          • 2015-09-29
          • 2013-02-28
          • 2020-02-19
          相关资源
          最近更新 更多