在Windows 7上安装Ruby MYSQL2 gem

问题描述 投票:35回答:17

我正在尝试在Windows 7上安装mysql2 gem我从mysql站点下载了连接器并将libmysql.dll放在ruby200 \ bin中

然后做gem安装mysql2

这些是我昏暗的结果吗?

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    C:/Ruby200/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby200/bin/ruby
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/
extconf.rb:37:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError
)


Gem files will remain installed in C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.
3.13 for inspection.
Results logged to C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/ext/mysql2/g
em_make.out
ruby gem mysql2
17个回答
104
投票

编辑30/09/2014

当这个答案发布时,64位rails安装程序不是推荐版本 - 现在看来人们开始更多地使用它了。应该注意,当您下载MySQL Connector时,您需要下载64位或32位以对应您安装的rails版本。

令人惊讶的是,由于我正好寻找其他类似性质的东西,我很幸运地在今天早上得到答案。我不太清楚为什么没有一个简单的指南,因为它看起来非常直接!

出于某种原因,在安装gem时仅指定mysql-dir不会选择其他子目录,因此您需要手动设置参数。

对于遇到同样问题的其他人,我做了以下事情:

1)从http://dev.mysql.com/downloads/connector/c/下载MySql C连接器

注意请勿下载安装程序,下载适用于您的操作系统的ARCHIVE

下载32位或64位ARCHIVE以与您安装的rails版本相对应。

2)将文件解压缩到C:\ mysql-connector

3)然后跑:

 gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connector"'

Voila一切正常。

编辑30/01/2014

我只需要在一台砖砌的机器上进行全新安装,并且步骤3中的命令不起作用,工作原理是:

gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'

我不太确定区别是什么,但这次它似乎正好拿起目录,所以如果第一个没有用,试试这个吧!

我认为这与你如何安装rails有关,这次我使用了railsinstaller,它似乎正确地设置了路径。

这里的很多结果似乎取决于你使用的shell,很多人都遇到了PowerShell的问题所以我不建议使用它。我是在提升的命令提示符下完成的。

哦,最后如果你在执行RAILS S时遇到关于mysql2 gem的错误,你需要将libmysql.dll从mysql连接器的LIB目录复制到已安装rails的bin目录。


0
投票

对于Cygwin,我可以整合各种步骤。

  1. 使用cygwin setup.exe下载gcc,g ++,make,cmake和libmysqlclient-devel(来自cygwin ports)
  2. 从mysql站点下载c / connector src for windows。我下载了6.x版本。或者下载libmysqlclient-devel的版本(不确定从哪里)
  3. 拉开拉链
  4. cd dir_connector
  5. 不需要和RISKY,但如果cygwin libmysqlclient-devel版本是5.5.40,那么将dir_connector / VERSION文件的版本更改为5.5.40
  6. mkdir build
  7. cd build
  8. 在stdlib.h中注释dtoa,否则编译失败
  9. cmake ..
  10. 使
  11. make install
  12. gem install mysql2 - --with-mysql-config = / usr / local / mysql / bin / mysql_config

0
投票

Ruby安装程序rubyinstaller-devkit-2.5.3-1-x64

Mysql连接器:mysql-connector-c-6.1.11-win32 gem install mysql2 --platform=ruby -- '--with-mysql-lib= "C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --wit h-mysql-dir="C:\mysql-connector"'

宝石安装:gem install mysql2 --platform = ruby​​ - --with-mysql-lib =“c:\ mysql-connector-c-6.1.11-win32”


-1
投票

我用我的64位PC下载了devkit 32位,但是我意识到railsinstaller默认安装了一个32位版本,所以我已经指示所有设备32位。

初始化ruby devkit dk.rb init

下载32位的mysql连接器,并将其放在mysql-connector C:\ mysql-connector中

您应该知道,当您解压缩文件时,它会创建一个具有相同名称的子文件夹,并且可能会出错。

然后使用上面列出的第二个命令:

https://downloads.mysql.com/archives/c-c/?version=6.1.2&os=src

这是我找到的解决方案,因为我遇到了同样的问题。


-1
投票

在Windows 7上,我发现现有的答案提供了部分解决方案,但我仍然无法安装它。

我遇到的问题是我使用的MySQL Community Edition Windows安装程序坚持将连接器放在称为gem install mysql2 - platform = ruby - '- with-mysql-dir = "C: \ mysql-connector"' 之类的文件夹中。 gem中的构建过程报告它找不到“C:\ MySQL \ MySQL”(之前我在Program Files中使用它时,它抱怨它无法找到“C:\ Program \ includes”)所以很明显,空间是一个问题,我无法找到逃脱它的方法,它可以理解 - 可能有人能够提出其中一个。

因为我不确定更改这些是否会破坏安装,一旦我意识到问题出现的原因我只是从命令行创建了一个符号链接(从C:\MySQL\MySQL Connector C 6.1.3比powershell更容易),如下所示:

cmd

然后我可以使用以下安装行:

C:\MySQL> mklink /D ConnectorC ".\MySQL Connector C 6.1.3"

这工作正常。

此外,当我尝试使用它时,我遇到了 gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/MySQL/ConnectorC/"' ,因此有必要注意从C Connector lib文件夹中移动MySQL lib文件可能会有所帮助。


-1
投票

我凭借纯粹的运气成功地获得了成功,但经过一个小时的地狱后,我觉得我应该分享我的解决方案,显然已经缩短了很多步骤,但我认为你可以自己弄清楚如何做。

我的机器是Win 7 64bit。我能够安装0.3.16版本

  1. 安装ruby版本2.0.0p481(?)
  2. Devkit等等等等
  3. 安装rails 4.0.0版
  4. 下载Mysql Connector C 64位zip文件,作为mysqlc放入C盘
  5. 从该bin获取DLL,将其放入ruby的lib中
  6. gem install mysql2 - - with-mysql-dir =“C:\ mysqlc”

-1
投票

添加一些调整后,它对我有用

this problem

-1
投票

这些都不适合我,直到我意识到我安装了64位版本的DevKit。所以我从gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\Program Files\MySQL\MySQL Connector C 6.1.5\lib" --with-mysql-include="C:\Program Files\MySQL\MySQL Connector C 6.1.5\include" --with-mysql-dir="C:\Program Files\MySQL\MySQL Connector C 6.1.5" 下载了64位MySQL Connector / C.

并使用“with-mysql-dir”选项安装gem


-1
投票

这是我为Windows Server 2012 sp2所做的。没有其他工作......

收到错误MySQL website

1)从'while installing mysql2 (0.3.17), and bundler cannot continue' Make sure that 'gem install mysql2 -v '0.3.17' succeeds...下载MySql C连接器

2)http://dev.mysql.com/downloads/connector/c/

3)Extract the file to C:\mysql-connector

注意:上面的-v'0.3.17',没有它就行不通。

4)gem install mysql2 -v '0.3.17' --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"' - >最后,成功。


7
投票

我已经尝试过@Mrk Fldig的解决方案,但它没有用......所以解决问题的是:

  1. 下载最新的MySQL qazxsw poi for Windows 7 32位
  2. 使用以下命令安装gem:Installer

需要注意的一个缺陷是我将反斜杠(\)更改为普通斜杠(/)。我用反斜杠尝试了相同的程序,但它没有用。

安装程序已在gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Connector C 6.1 6.1.2/"'目录中包含用于MySQL的C连接器。因此,仅传递没有MySQL Connector C 6.1 6.1.2--with-mysql-dir参数的--with-mysql-lib参数,使得gem可以查看--with-mysql-includelib目录的相同目录


6
投票

适用于Ruby 2.1.3,Windows 8.1和MySQL Server 5.7的步骤。所有x64位。

  1. 下载include
  2. 提取开发套件。
  3. 运行CMD并转到开发工具包提取的目录
  4. 运行Development Kit
  5. 运行ruby dk.rb init
  6. 运行ruby dk.rb install

1
投票

这对于我在Windows 8 64位和使用ruby 64位上的相同错误起了作用

  1. 下载并安装64位MySQL Server 5.6
  2. 运行此命令: gem install mysql2 -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.7\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.7\include" --with-mysql-dir="c:\Program Files\MySQL\MySQL Server 5.7"'

希望这可以帮助


1
投票

我已经尝试了所有提供的方法,但同样的错误一次又一次出现:(

幸运的是,旧版本安装没有任何错误!

gem install mysql2 -v '0.3.16' -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.6\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.6\include"'

0
投票

尝试按照以下步骤操作:

我假设:

  • a)你使用Windows 7
  • b)C:\ Ruby200-x64上的ruby 2+
  • c)安装在红宝石上的导轨4+
  • d)WAMP安装在C:\ wamp上并运行

1)卸载你的mysql2 gem:

gem uninstall mysql2
gem install mysql2 -v 0.2.6

2)使用path选项重新安装mysql2 gem:

$ gem uninstall mysql2

3)将您在C:\ wamp \ bin \ mysql \ mysql5.6.12 \ lib中找到的libmysql.dll复制到C:\ Ruby200-x64 \ bin中

4)在你的rails应用程序中打开文件“Gemfile”并编辑它启用mysql2,添加:

$ gem install mysql2 -- '--with-mysql-lib="C:\wamp\bin\mysql\mysql5.6.12\lib" --with-mysql-include="C:\wamp\bin\mysql\mysql5.6.12\include"'

5)启动rails服务器:

gem 'mysql2'

6)打开浏览器并转到localhost:3000 /


0
投票

我仍然遇到mysql2 gem的问题,但是下面的方法帮助我在Windows环境下使用RoR安装mysql。

第1步:Gem文件更改:({app} / Gemfile)

更新mysql2 - > mysql

第2步:更新database.yml文件({app} /config/database.yml)

更改适配器:mysql2 - > adapter:mysql

host:localhost - > host:127.0.0.1

第3步:下载mysql-connector-c-noinstall-6.0.2-win32

步骤4:将mysql-connector-c-noinstall-6.0.2-win32 \ lib \ libmysql.dll文件复制到C:\ RailsInstaller \ Ruby1.9.3 \ bin

第5步:捆绑更新&&启动rails服务器


0
投票

这对我有用:

$ rails server

一直在寻找几个小时,并没有看到这个变化建议,所以希望它会帮助某人!


0
投票

在安装gem之前,请尝试禁用防病毒软件。我运行以下命令后安装了我:

gem install mysql2 -- '--with-mysql-dir="C:\wamp\bin\mysql\mysql5.5.xx"'

当我的防病毒软件启用时,同样的命令无效,因为它正在将一些ruby文件推送到胸部。希望这有助于某人。

© www.soinside.com 2019 - 2024. All rights reserved.