我正在尝试在Windows 7上安装mysql2 gem我从mysql站点下载了连接器并将libmysql.dll放在ruby200 \ bin中
然后做gem install 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
答案 0 :(得分:104)
EDIT 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以符合您安装的导轨版本。
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一切正常。
EDIT 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目录。
答案 1 :(得分:7)
我尝试过@Mrk Fldig的解决方案,但它没有用...... 所以解决问题的是:
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
参数,会使gem查看lib
和include
目录的同一目录< / p>
答案 2 :(得分:6)
Ruby 2.1.3,Windows 8.1和MySQL Server 5.7的步骤。所有x64位。
ruby dk.rb init
ruby dk.rb install
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"'
答案 3 :(得分:1)
这对于我在Windows 8 64位和使用ruby 64位上的相同错误有效吗
运行此命令:
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"'
希望这有帮助
答案 4 :(得分:1)
我尝试了所有提供的方法,但同样的错误一次又一次出现:(
幸运的是,安装旧版本没有任何错误!
gem uninstall mysql2
gem install mysql2 -v 0.2.6
答案 5 :(得分:0)
Ruby安装程序 rubyinstaller-devkit-2.5.3-1-x64
mysql连接器:mysql-connector-c-6.1.11-win32 https://downloads.mysql.com/archives/c-c/?version=6.1.2&os=src
宝石安装: gem install mysql2 --platform = ruby---with-mysql-lib =“ c:\ mysql-connector-c-6.1.11-win32”
答案 6 :(得分:0)
对于Cygwin,我可以整合各种步骤。
答案 7 :(得分:0)
在安装gem之前,请尝试禁用防病毒软件。我运行以下命令后安装完了:
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"'
当我的防病毒软件启用时,相同的命令无效,因为它正在将一些ruby文件推送到胸部。 希望这有助于某人。
答案 8 :(得分:0)
这对我有用:
gem install mysql2 -- '--with-mysql-dir="C:\wamp\bin\mysql\mysql5.5.xx"'
一直在寻找几个小时,并没有看到这个变化建议,所以希望它会帮助别人!
答案 9 :(得分:0)
我仍然遇到mysql2 gem的问题,但是下面的方法帮助我在Windows Env上使用RoR安装mysql。
第1步:Gem文件更改:({app} / Gemfile)
更新mysql2 - &gt; MySQL的
第2步:更新database.yml文件({app} /config/database.yml)
更改适配器:mysql2 - &gt; adapter:mysql
host:localhost - &gt;主持人: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步:捆绑更新&amp;&amp;启动rails服务器
答案 10 :(得分:0)
尝试按照以下步骤操作:
我假设:
1)卸载你的myslq2 gem:
$ gem uninstall mysql2
2)使用路径选项重新安装mysql2 gem:
$ 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"'
3)将您在C:\ wamp \ bin \ mysql \ mysql5.6.12 \ lib中找到的libmysql.dll复制到C:\ Ruby200-x64 \ bin
4)在你的rails应用程序中打开文件“Gemfile”并编辑它启用mysql2,添加:
gem 'mysql2'
5)启动rails服务器:
$ rails server
6)打开浏览器并转到localhost:3000 /
答案 11 :(得分:-1)
我凭借纯粹的运气成功地获得了成功,但是经过一个小时的地狱之后,我觉得我应该分享我的解决方案,显然已经缩短了很多但我认为你可以自己弄清楚如何做的很多步骤
我的机器是Win 7 64bit。我能够安装版本0.3.16
答案 12 :(得分:-1)
添加一些调整后,它对我有用
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"
答案 13 :(得分:-1)
在我意识到我安装了64位版本的DevKit之前,这些都不适用于我。所以我从MySQL website
下载了64位MySQL Connector / C.并使用“with-mysql-dir”选项安装gem
答案 14 :(得分:-1)
在Windows 7上,我发现现有的答案提供了部分解决方案,但我仍然无法安装。
我遇到的问题是我使用的MySQL Community Edition Windows安装程序坚持将连接器放在名为C:\MySQL\MySQL Connector C 6.1.3
之类的文件夹中。 gem中的构建过程报告说它无法找到&#34; C:\ MySQL \ MySQL&#34; (在此之前,当我在程序文件中使用它时,它抱怨它无法找到&#34; C:\ Program \ includes&#34;)所以很明显这些空格是一个问题我无法找到一种逃避它的方式,它可以理解 - 可能有人能够建议其中一种。
因为我不确定更改这些是否会破坏安装,一旦我意识到问题出现的原因我只是从命令行创建了一个符号链接(从cmd
比PowerShell更容易)像这样:
C:\MySQL> mklink /D ConnectorC ".\MySQL Connector C 6.1.3"
然后我可以使用以下安装行:
gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/MySQL/ConnectorC/"'
这很正常。
此外,当我尝试使用它时,我遇到this problem因此,请注意从C Connector lib文件夹移动MySQL lib文件可能会有所帮助
答案 15 :(得分:-1)
这是我为windows server 2012 sp2所做的。没有其他工作......
收到错误'while installing mysql2 (0.3.17), and bundler cannot continue' Make sure that 'gem install mysql2 -v '0.3.17' succeeds...
1)从http://dev.mysql.com/downloads/connector/c/
下载MySql C连接器 2)Extract the file to C:\mysql-connector
3)gem install mysql2 -v '0.3.17' --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'
注意:上面的-v'0.3.17',没有它就行不了。
4)bundle install
- &gt;最后,成功。
答案 16 :(得分:-1)
我使用我的64位PC下载了devkit 32位,但我发现railsinstaller默认安装了32位版本,所以我已经指示所有设备32位。
初始化ruby devkit dk.rb init
下载mysql连接器32位,并将其放在mysql-connector C:\ mysql-connector
中您应该知道,当您解压缩文件时,它会创建一个具有相同名称的子文件夹,并且可能会出错。
然后使用上面列出的第二个命令:
gem install mysql2 - platform = ruby - '- with-mysql-dir = "C: \ mysql-connector"'
这是我找到的解决方案,因为我遇到了同样的问题。