安装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仓库)&#x3002; 接下来,将该文件复制到您的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位连接器 ,没有麻烦工作。