Windows 7 x64中Rails的MySQL驱动程序

我在新安装的Windows 7机器上连接MySQL数据库时遇到问题。 我尝试迁移数据库时遇到此错误。

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. rake aborted! 193: %1 is not valid Win32 application - C:/Ruby/lib/ruby/gems/1.8/gems/mysql-2.8.1-x86-mswin32/lib/1.8/mysql_api.so 

我目前已安装

 ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] mysql version 5.0.86 for Win64 gem 1.3.1 mysql-2.8.1-x86-mswin32 

我的同事在Windows 7上运行rails时遇到了类似的问题。他不得不用来自InstantRails的libmySQL.dll(在PATH中)替换它。

我花了好几个小时试图让MySQL和Rails在Windows上运行得很好(尽管是XP,32位和64位版本)。 我终于放弃了,因为我的生产盒运行Linux(Rails和MySQL非常好地运行)并且只使用SQLite 3进行开发。 没有令它头疼的工作,它的运行速度足以满足开发需求。

但是,我确实听说有些人幸运地用官方MySQL发行版提供的一个替换了gem提供的DLL之一。 此外,有些人根本没有这个DLL导致问题。 最后,它对我不起作用,但希望你会有更多的运气。

对于Rails或DataMapper或与MySQL交谈的任何内容,您需要在Rails \ bin中使用32位驱动程序。 该驱动程序称为libmysql.dll。 即使您有64位服务器,也需要32位驱动程序。

64位驱动程序将失败将ruby / gems / 1.8 / gems / do_mysql-0.10.2-x86-mingw32 / lib / do_mysql / 1.8 / do_mysql.so:193:%1不是有效的Win32应用程序。

错误的32位版本会因内存分配错误或类似奇怪的东西而崩溃(从另一个项目中获取libmysql.dll的建议解决方案可能不适用于较新版本的MySQL)。

我是新手。 我刚刚在vista中传递了同样的问题。 在使用InstantRails中的libmySQL.dll(在PATH中)下载后,它开始工作。

sukumaaar@gmail.com

解决这个问题的方法是简单地安装32位版本的mysql。

快进到2012年3月。我通过重命名我的Ruby \ b \ bin \ libmysql.dll,然后从C:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.0复制libmysql.dll,在Windows 7 x64上解决了这个问题。 2 \ lib \ opt到Ruby \ bin

在C:\ Program Files(x86)\ MySQL \ MySQL Workbench CE 5.2.37上有一个更新版本的libmysql.dll但是gem不喜欢非6.x版本。

这可能与Ruby on Rails Win7 x64有关吗? ? 如果是这样,再次修复了什么(无法​​从第一个答案中找到答案)?

另一个对我有用的选择是下载32位版本的mysql for windows并保留libmysql.dll并将此DLL的位置添加到windows PATH。

将InstantRails中的libmySQL.dll添加到我路径中的目录也为我工作。 我们必须做这种事情真的很难过。 我想看看gem或MySql本身正确安装这个DLL。

我在WinXP SP3上运行当前版本的所有版本:Ruby 1.9.2p0,MySQL 5.5,mysql 2.8.1。 这个问题仍然存在,为了解决这个问题,我不得不将Instant Rails libmysql.dll复制到我的C:\ Ruby192 \ bin目录中。 我最初复制了MySQL 5.5附带的libmysql.dll文件但导致了seq错误!