在Windows 7上安装Ruby MYSQL2 gem

Mrk*_*dig 35 ruby gem mysql2

我正在尝试在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
Run Code Online (Sandbox Code Playgroud)

Mrk*_*dig 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"'
Run Code Online (Sandbox Code Playgroud)

Voila一切正常.

编辑30/01/2014

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

gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

  • 遗憾的是,对我不起作用......不确定原因. (14认同)
  • 确保下载32位服务器和32位连接器.https://github.com/oneclick/rubyinstaller/wiki/Troubleshooting#wiki-gems_mix_bits (6认同)

And*_*ano 7

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

  1. 下载了适用于Windows 7 32位的最新MySQL 安装程序
  2. 使用以下命令安装gem: gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Connector C 6.1 6.1.2/"'

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

安装程序已在MySQL Connector C 6.1 6.1.2目录中包含MySQL的C连接器.因此,只透过--with-mysql-dir参数没有--with-mysql-lib--with-mysql-include参数,使得创业板看的同一目录libinclude目录


小智 6

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

  1. 下载 开发套件
  2. 提取开发套件.
  3. 运行CMD并转到开发工具包提取的目录
  4. ruby dk.rb init
  5. ruby dk.rb install
  6. 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"'