使用Ruby on Rails 3加载libmysql.dll文件失败

我正在使用带有mysql的RoR制作一个应用程序。我按照以下步骤使用mysql制作应用程序。

1-rails new projectname -d mysql

2-rails生成脚手架post标题:弦体:文字

运行第二步后,我收到以下错误。

错误:

Failed to load libmysql.dll from C:\Ruby193\lib\ruby\gems\1.9.1\gems\mysql2-0.3. 18-x86-mingw32\vendor\libmysql.dll 

我已经在我的系统中安装了mysql并将libmysql.dll文件从mysql-connector-c-noinstall-6.0.2-win32 \ lib \ libmysql.dll复制到C:\ Ruby193 \ bin仍然我收到了上述错误。请将尝试帮助我解决这个错误,我也有兴趣知道我的mysql数据库是否存在于其他实例而不是我的本地系统如何使用Rails连接它。

我在我的系统中使用Rails版本-3.2.19和win-xp。

经过一些“谷歌工作”并尝试使用Win2k3服务器,它似乎是“二进制版本的mysql2”的问题。

在mysql2的最新版本中,它包含libmysql.dll,不像它需要在本地编译,而libmysql.dll的版本来自MySQL Connector 6.1.x,它删除了WinXp / 2k3的支持。

所以,你可以尝试这种方式我在我的Redmine安装中取得了成功:

  1. 通过gem uninstall mysql2卸载你的mysql2 gem并删除所有mysql2包
  2. 从MySQL下载一个“MySQL Connector / C NoInstall”版本应该低于6.1,在我的例子中是6.0.2(mysql-connector-c-noinstall-6.0.2-win32.zip),然后解压缩到一个路径,例如比如“D:\ MySQLConn”
  3. 通过以下命令gem install mysql2 --platform=ruby -- '--with-mysql-lib="D:\MySQLConn\lib" --with-mysql-include="D:\MySQLConn\include"'gem install mysql2 --platform=ruby -- '--with-mysql-lib="D:\MySQLConn\lib" --with-mysql-include="D:\MySQLConn\include"'
  4. 运行Redmine的安装`bundle install – withoutout development test’
  5. 检查mysql2 gem gem list mysql2
  6. 删除不“自编”的gem(步骤3),如名称“mysql2-0.3.18-x86-mingw32”,并确保只有“自编”的mysql2版本,看起来像“mysql2-0.3” 0.18″
  7. 完成!

我希望它对你有所帮助。

我发现libmysql.dll有32位和64位变体。 尝试两个。 对我来说32bit libmysql.dll有效。

在我升级到mysql2 0.4.7+之后,这发生在我身上。 0.4.6之后的版本使用MySQL Connector C 6.1.10+。 发行说明提到,为了编译MySQL Connector C,您将需要安装Visual Studio 2015的Visual C ++ Redistributable 。 安装并重新安装mysql2后,错误就消失了。