我正在尝试在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
编辑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目录。
对于Cygwin,我可以整合各种步骤。
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”
我用我的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
这是我找到的解决方案,因为我遇到了同样的问题。
在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文件可能会有所帮助。
我凭借纯粹的运气成功地获得了成功,但经过一个小时的地狱后,我觉得我应该分享我的解决方案,显然已经缩短了很多步骤,但我认为你可以自己弄清楚如何做。
我的机器是Win 7 64bit。我能够安装0.3.16版本
添加一些调整后,它对我有用
this problem
这些都不适合我,直到我意识到我安装了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
这是我为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"'
- >最后,成功。
我已经尝试过@Mrk Fldig的解决方案,但它没有用......所以解决问题的是:
需要注意的一个缺陷是我将反斜杠(\)更改为普通斜杠(/)。我用反斜杠尝试了相同的程序,但它没有用。
安装程序已在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-include
和lib
目录的相同目录
适用于Ruby 2.1.3,Windows 8.1和MySQL Server 5.7的步骤。所有x64位。
include
ruby dk.rb init
ruby dk.rb install
这对于我在Windows 8 64位和使用ruby 64位上的相同错误起了作用
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"'
希望这可以帮助
我已经尝试了所有提供的方法,但同样的错误一次又一次出现:(
幸运的是,旧版本安装没有任何错误!
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"'
尝试按照以下步骤操作:
我假设:
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 /
我仍然遇到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服务器
这对我有用:
$ rails server
一直在寻找几个小时,并没有看到这个变化建议,所以希望它会帮助某人!
在安装gem之前,请尝试禁用防病毒软件。我运行以下命令后安装了我:
gem install mysql2 -- '--with-mysql-dir="C:\wamp\bin\mysql\mysql5.5.xx"'
当我的防病毒软件启用时,同样的命令无效,因为它正在将一些ruby文件推送到胸部。希望这有助于某人。