【问题标题】:ruby mysql2 gem install errorruby mysql2 gem 安装错误
【发布时间】:2013-08-07 11:43:13
【问题描述】:

我在我的 Windows 机器上安装 mysql2 gem 时遇到问题,通常它可以工作,但现在我得到了 Failed to build native extension. 我在谷歌上搜索了一下,但有很多 linux 修复。我知道使用 ruby​​ 在 Windows 上工作并不是最好的选择。回到问题上来,我用gem install mysql2 -- --with-mysql-dir=C:\wamp\bin\mysql\mysql5.6.12\bin --with-mysql-lib=C:\wamp\bin\mysql\mysql5.6.12\lib安装mysql2,可以用mysql,但是rails需要mysql2。

谢谢。

【问题讨论】:

标签: mysql ruby-on-rails ruby gem


【解决方案1】:

mysql2 可能很难安装。我们刚刚得到了一个使用 Ruby 2.0.0p247、Windows 64bit 和 mysql 0.3.13 的开发盒。以下是一些建议:

  1. 确保您安装了最新的 DevKit (http://rubyinstaller.org/downloads/)。在页面的右栏中,它告诉您特定版本的 Ruby 需要哪个版本的 DevKit。我们发现将它安装到 C:\DevKit

  2. 是最简单的
  3. 现在尝试运行 gem install mysql2 ..。您在问题中列出的命令。或者,对于 32 位安装,我们这样做:

subst X: "C:\Program Files (x86)\MySQL\MySQL Server 5.6" gem install mysql2 -v=0.3.13 --platform=ruby -- --with-mysql-include=X:\include --with-mysql-lib=X:\lib 替代 X:/d

subst 命令创建一个虚拟驱动器并帮助处理路径名中的空格。

  1. 将 C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib\libmysql.dll 复制到 Ruby bin 目录。如果您使用的是 32 位,则应该关闭并运行。

然而,一旦 mysql2 构建,64 位用户可能会遇到另一个错误。上面的步骤似乎可以工作,但是当他们实际使用 mysql2 gem 做一些有用的事情时,比如运行 rake db:create,他们会遇到分段错误。可以在https://github.com/brianmario/mysql2/issues/372https://bugs.ruby-lang.org/issues/8591https://groups.google.com/forum/#!topic/rubyinstaller/uTNffOt6Yqo 找到更多信息和解决此问题的方法

长话短说,需要使用兼容的 mysql 连接器 c 而不是 MySQL 服务器目录。一位乐于助人的用户提供了正确的连接器 c,可以在此处下载 (https://www.copy.com/s/CHZ4eT4us6f1/mysql-connector-c-noinstall-6.0.2-winx64.zip)。解压缩该 zip 文件,并将您的 gem install mysql2 ... 命令指向适当的目录,然后 64 位幸福将随之而来。 (不要忘记从下载的连接器 c 文件夹中获取 libmysql.dll 并将其放在您的 ruby​​ bin 目录中)。

【讨论】:

  • 这已经在多台机器上为我们工作了。您的具体错误信息是什么?
  • 我认为你在 --platform=ruby 和 --with-mysql-include 之间缺少'--',即它应该是 gem install mysql2 -v=0.3.13 --platform= ruby --with-mysql-include=x:\include --with-mysql-lib=x:\lib
【解决方案2】:

在命令提示符下执行此命令。

gem install mysql2 -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.1\lib\opt" --with-mysql-include="c:\Program文件\MySQL\MySQL 服务器 5.1\include"'

注意:根据您的安装更改 Mysql 安装目录。
这应该可以完美地工作

【讨论】:

    【解决方案3】:

    here 下载连接器的 32 位 Zip 存档。然后将解压出来的文件夹复制到你的C盘根目录下方便访问,这样你的连接器文件夹路径就会是这样的

    C:\mysql-connector-c-6.1.3-win32\
    

    现在将这行代码复制到你的 cmd 并执行(记得用你的连接器版本号更改)

    gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/mysql-connector-c-6.1.3-win32/"'
    

    经过长时间的尝试,我以这种方式在我的 32 位和 64 位 windows 7 中都成功安装了 mysql2 gem。干杯!

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 2012-12-21
      • 2011-08-12
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 2011-05-02
      相关资源
      最近更新 更多