安装mysql2时出错:无法构建gem原生扩展

当我尝试安装Rails的mysql2 gem时遇到一些问题。 当我尝试通过运行bundle installgem install mysql2来安装它时,它给了我以下错误:

安装mysql2时出错:错误:无法构建gem原生扩展。

我怎样才能解决这个问题,并成功安装mysql2

在Ubuntu / Debian和其他使用aptitude的发行版上:

 sudo apt-get install libmysql-ruby libmysqlclient-dev 

软件包libmysql-ruby已经被淘汰,取而代之的是ruby-mysql 。 这是我找到解决方案的地方。

如果上述命令不起作用,因为找不到libmysql-ruby ,那么以下就足够了:

 sudo apt-get install libmysqlclient-dev 

在Red Hat / CentOS和其他使用yum的发行版中:

 sudo yum install mysql-devel 

在Mac OS X上用Homebrew :

 brew install mysql 

我在Mac上使用自制软件安装开源程序。 我不得不安装mac开发工具,以安装自制软件,但在那之后,这是一个简单的:

 brew install mysql 

安装mysql。 自从我没有一个MySQL的宝石问题。

这里是Windows用户的解决方案,希望它有帮助!

在Windows上使用MySQL和Rails 3

  • 安装railsinstaller – > http://www.railsinstaller.org (我安装到C:\ Rails)

  • 安装MySQL (我使用MySQL 5.5) – > dev.mysql.com/downloads/installer/

—为mySQL安装—

如果你还没有安装这两个文件,你可能需要他们让你的MySQL去

vcredist_x86.exe – > http://www.microsoft.com/download/en/details.aspx?id=5555 dotNetFx40_Full_x86_x64.exe – > http://www.microsoft.com/download/en/details.aspx?id = 17718

使用默认安装Developer Machine

-MySQL服务器配置 –
港口:3306
windows服务名称:MySQL55
mysql root pass:root(你可以稍后改变)
(用户名:root)
-MySQL服务器配置 –

—为mySQL安装—

—安装mysql2 gem —

重要: 使用Git Bash Command Line (这是使用railsinstaller安装的) – > start / Git Bash

gem install mysql2 – '–with-mysql-lib =“c:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib”–with-mysql-include =“c:\ Program Files \ MySQL \ MySQL Server 5.5 \包括”'

现在,宝石应该已经正确安装

最后复制libmysql.dll文件
C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib

C:\ Rails的\ Ruby1.9.2 \ BIN

—安装mysql2 gem —

你现在可以使用你的Rails应用程序与MySQL,如果你不知道如何创建一个Rails 3的应用程序与MySQL读…


—获取与MySQL的Rails 3应用程序—

打开命令提示符(而不是Git Bash) – >开始/ cmd
导航到您的文件夹(c:\ Sites)
创建新的rails应用程序

 rails new world 

删除文件c:\ Sites \ world \ public \ index.html
编辑文件c:\ Sites \ world \ config \ routes.rb
添加这一行 – > root:to =>'cities#index'

打开命令提示符(生成视图和控制器)

 rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer 

编辑文件c:\ Sites \ world \ app \ models \ city.rb,看起来像这样

 class City < ActiveRecord::Base set_table_name "city" end 

编辑文件c:\ Sites \ world \ config \ database.yml看起来像这样

 development: adapter: mysql2 encoding: utf8 database: world pool: 5 username: root password: root socket: /tmp/mysql.sock 

添加到gemfile

 gem 'mysql2' 

打开命令提示符窗户cmd,而不是Git Bash(运行你的应用程序!)
导航到您的应用程序文件夹(c:\ Sites \ world)

 rails s 

在这里打开你的浏览器 – > http:// localhost:3000

—获取与MySQL的Rails 3应用程序—

我有几台电脑,32位和64位处理器,他们运行在Ubuntu Linux,Maverick(10.10)发布。

我有同样的问题,对我来说, sudo apt-get install libmysql-ruby libmysqlclient-dev做的工作!

如果你正在使用百胜尝试:

 sudo yum install mysql-devel 

你有没有尝试过使用

  gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

指定base目录的位置以及完成gem安装所需的MySQL库路径?

来源: MySQL Gem Install错误:无法构建gem原生扩展 MySQL Forums :: Ruby ::需要为Ruby安装MySQL绑定

如果你仍然有麻烦… …。

尝试安装

  sudo apt-get install ruby1.9.1-dev 

MacOS用户的另一种方法

如果你用“brew”来安装mysql:

 gem install mysql2 -v 'xxx' -- --with-mysql-config=/usr/local/Cellar/mysql/yyy/bin/mysql_config 

xxx =您要安装的mysql2 gem的版本
yyy =你安装了ls /usr/local/Cellar/mysql

我有我的Windows 7这个问题。这显然是一个不兼容的问题,解决方案如下:从较旧的InstantRails安装程序下载mysql.dll文件。 链接http://tinyurl.com/24ocp8u将只下载mysql.dll文件(它链接到InstantRails的svn仓库)。; 接下来,将该文件复制到您的Ruby / bin文件夹中。 现在,你很好走;)

我也有这个错误。 通过安装开发包解决。 我正在使用拱门,它是:

 sudo pacman -S base-devel 

其中安装了:

 m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc, libtool, make, patch, pkg-config 

但我认为它实际上需要make和gcc。 错误输出说(在我的机器等):

“你必须先安装开发工具。”

所以这是一个明显的决定,它有帮助。

这在Windows中解决了我的问题:

 subst X: "C:\Program files\MySQL\MySQL Server 5.5" gem install mysql2 -v 0.xx --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt subst X: /D 

我在我的Mac上运行到这个错误,发现我需要从MySQL 32位升级到MySQL 64位得到这个错误消失。 我在Intel MacBook Pro上用ruby 1.9.2和rails3.0.0运行OSX 10.6

我还需要安装xcode才能获得像编译gem所需的“make”之类的unix工具。

一旦完成,我能够运行gem install mysql和gem install mysql2而不会报错。

你必须安装一些依赖项

 sudo apt-get install libmysql-ruby libmysqlclient-dev 

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

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

解决方案仅适用于Mac OS X

如果你已经用homebrew安装了MySQL,那么对于我来说,卸载MySQL和通过MySQL网站( https://www.mysql.com/ )安装MySQL Community Edition是非常有效的。

安装完毕后,只需重新输入gem install mysql2命令即可,如有需要sudo gem install mysql2 ,如果获得权限拒绝的问题。

我得到了在Mac OS X 10.6.6上构建的gem 1)确保安装了开发工具包2)从源代码中下载当前的MySQL包(5.5.8)3)从cmake.org安装cmake工具4 )按照mysql配置文件中INSTALL-SOURCE的2.11节的说明5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include gem已经成功建立,但是在文档中有两个错误: rdoc和ri抱怨。 但是现在当我尝试要求“mysql2”时,我得到了一个

 LoadError: no such file to load -- mysql2/mysql2 

我希望我得到的错误是libmysqlclient.16.dylib无法找到,因为我们在另一篇文章(搜索install_name_tool)中找到了。

我的$ PATH中有/ usr / local / mysql(这是我的源文件和构建文件所在的位置),所以我有点难住。 如果有人有任何想法,我会睡几个小时后再回来看看。

如果仍然出现错误,请遵循Rails 3上的mysql2 gem安装步骤 –

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

大部分用户都能够安装mysql2 gem。

在得到更正的mysql-dev问题之后,您可能需要删除错误的mysql2安装。 仔细看$ bundle安装后的消息。 你可能需要

 rm -rf vendor/cache/ rm -rf ./Zentest 

这将清除不良的mysql2安装,以便最后的$ bundle安装可以创建一个好的。

下载正确的版本的mysqllib.dll,然后将其复制到红宝石斌真的为我工作。 按照这个链接plains mysql2 gem编译为错误的mysql客户端库

得到了“你必须先安装开发工具”。 在升级到Mac OS X Mountain Lion后尝试安装mysql2 gem时出错。 显然做这个升级删除命令行编译器。

修理:

  • 我卸载了我非常旧版本的Xcode(在/ Developer / Library中运行卸载脚本)。 然后删除/ Developer目录。
  • 去AppStore并下载Xcode。
  • 启动Xcode并进入首选项 – >下载,并安装命令行工具。

你得到这个问题,因为你还没有安装MySql。 在安装mysql2 gem之前。 安装MySQL。 之后,MySQL2的宝石将安装。

我只是想为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. 

所以正如在这篇文章中建议,我试着“brew安装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”。 你必须成为同意许可证的根源。

在此之后,我再次尝试捆绑安装,然后一切正常正常工作。 [即使由于这个xcode更新,我也有我的塔问题。]

对于那些使用Windows 7和64位MySQL的人

如果你想使用64位MySQL,你应该按照这里的说明(也在这里 )。

还有一个定制的64位连接器 ,没有麻烦工作。