我有一些问题时,试图安装mysql2宝石为Rails。当我试图通过运行bundle install或gem install mysql2来安装它时,它会给我以下错误:

安装mysql2错误:错误:未能建立gem本地扩展。

我如何解决这个问题并成功安装mysql2?


当前回答

我在Windows 7上遇到了这个问题。这显然是一个不兼容的问题,解决方案如下:

从旧的InstantRails安装程序下载libmySQL.dll文件。它可以从InstantRails GitHub回购中获得。

接下来,将该文件复制到Ruby/bin文件夹中。

现在,你可以开始了;)

其他回答

我在Windows 7上遇到了这个问题。这显然是一个不兼容的问题,解决方案如下:

从旧的InstantRails安装程序下载libmySQL.dll文件。它可以从InstantRails GitHub回购中获得。

接下来,将该文件复制到Ruby/bin文件夹中。

现在,你可以开始了;)

我只是想特别为Mac用户添加这个答案。

在我更新xcode之前,我的服务器运行得非常好。当启动我的rails服务器时,错误显示如下

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
    checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-  
    p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an    
    executable file. (RuntimeError)

并且在错误消息的末尾有安装mysql2 gem的建议。所以当我尝试安装它时,我得到了这个问题中提到的错误。我得到的错误如下

ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

因此,正如在这篇文章中所建议的那样,我尝试了“酿造安装mysql”,并退出说mysql版本已经安装。但之前有警告说

Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license

然后我尝试了这个sudo xcodebuild -license,并在最后键入'agree'。您必须是root用户才能同意该许可。

在此之后,我再次尝试bundle安装,然后一切都正常工作。[甚至由于这次xcode更新,我的塔也有问题。]

windows用户: 你可以设置lib和mysql的路径,例如,如果你使用xampp,你可以这样:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'

如果仍然报错,请按照mysql2 gem在Rails 3上的安装步骤

http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

其中大多数用户都能够安装mysql2 gem。

对于MacOS Mojave:

——with-cppflags=-I/usr/local/opt/openssl/include . gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib——with-cppflags=-I/usr/local/opt/openssl/include