我有一个新的rails应用程序,我在Windows 7下创建了一个目录并输入“rails newapp”。创建很顺利,当我访问根页面时,一切都很顺利。但是,当我尝试访问将访问数据库的页面时,我得到了这个:
193: %1 is not a valid Win32 application.
在developer.log中。 Mysql在我的机器上运行正常,我在其他目录中运行的其他应用程序,只是这个不起作用。有什么想法吗?
答案 0 :(得分:26)
这是对我有用的答案。事实证明这是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,以上建议 帮助过我。 从这里下载libMySql.dll(http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/) 并把它放在ruby \ bin解决了 问题
答案 1 :(得分:6)
按照此博客上的说明解决:http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/
涉及使用MySQL Connector 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
(不需要再次更改路径)
答案 2 :(得分:1)
如果驱动器根目录中有名为“Program”的文件,则会出现此错误。比如说你正在尝试执行“C:\ Program Files \ SomeApp \ Bin \ SomeExe.Exe”它会尝试执行“C:\ Program”(如果存在)。在某些情况下,如果您忘记使用某些命令行命令引用“C:\ Program Files ...”,则会创建具有此名称的文件。这当然也适用于你D:驾驶等。
如果您尝试启动服务,则通常会发生此错误,但在其他情况下可能会发生此错误。
只需删除文件C:\ Program或D:\ Program等即可解决问题。
答案 3 :(得分:0)
遇到多个问题在Windows x64上使用Rails设置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-5.5.15-win32,mysql-2.8.1-x86-mingw32和Windows 7 x64。
答案 4 :(得分:0)
从MySQL安装目录中复制文件libmysql.dll并将其粘贴到Ruby安装的bin目录中。如果您的MySQL安装目录尚未包含文件libmysql.dll,则可能需要从http://dev.mysql.com/downloads/mysql/下载zip存档。
答案 5 :(得分:-2)
在Windows 7上使用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: "pwd@123" encoding: utf8