首页 文章

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

提问于
浏览
446

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

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

如何解决此问题并成功安装 mysql2

25 回答

  • 883

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

    sudo apt-get install libmysql-ruby libmysqlclient-dev
    

    libmysql-ruby 已被淘汰并由 ruby-mysql 取代 . This是我找到解决方案的地方 .

    如果上述命令不起作用,因为找不到 libmysql-ruby ,则以下内容应足够:

    sudo apt-get install libmysqlclient-dev
    

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

    sudo yum install mysql-devel
    

    在Mac OS X上使用Homebrew

    brew install mysql
    
  • 0

    我在Mac上并使用homebrew来安装开源程序 . 我确实需要安装mac Dev工具才能安装自制软件,但之后这很简单:

    brew install mysql
    

    安装mysql . 我从没有过mysql gem问题 .

  • 34

    这是 windows users 的解决方案,希望有所帮助!

    在Windows上使用MySQL和Rails 3

    • Install railsinstaller - > www.railsinstaller.org(我将它安装到c:\ Rails)

    • Install 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 Server配置:3306 windows服务名称:MySQL55 mysql root pass:root(你可以稍后更改)(用户名:root)-MySQL Server Config- ---用于mySQL安装---

    ---安装mysql2 Gem ---重要:用Git Bash命令行(这是用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 \ include“'现在gem应该已经正确安装最后复制libmysql.dll文件从C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib到C:\ Rails \ Ruby1.9.2 \ bin ---安装mysql2 Gem ---

    如果您不确定如何使用MySQL读取创建Rails 3应用程序,您现在可以将您的Rails应用程序与MySQL一起使用...


    --- Get a Rails 3 app going with MySQL ---

    打开命令提示符(不是Git Bash) - > start / 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'
    

    打开 command prompt windows cmd,而不是Git Bash(运行你的应用!)
    导航到您的应用程序文件夹(c:\ Sites \ world)

    rails s
    

    在这里打开您的浏览器 - > http://localhost:3000

    --- Get a Rails 3 app going with MySQL ---

  • 0

    我有几台计算机,32位和64位处理器,它们运行在Ubuntu Linux,Maverick(10.10)版本上 .

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

  • 0

    Another way for MacOS users

    如果您使用“brew”来安装mysql:

    gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config
    

    x.x.x =您要安装的mysql2 gem的版本
    y.y.y =您已安装的mysql版本 ls /usr/local/Cellar/mysql 以找到它 .

  • 5

    你尝试过使用过吗?

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

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

    资料来源:MySQL Gem Install ERROR: Failed to build gem native extension MySQL Forums :: Ruby :: Help needed with installing MySQL binding for Ruby

  • 7

    如果您正在使用yum尝试:

    sudo yum install mysql-devel
    
  • 0

    If you are still having trouble….

    尝试安装

    sudo apt-get install ruby1.9.1-dev
    
  • 10

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

  • 3

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

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

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

    sudo pacman -S base-devel
    

    哪个安装:

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

    但我认为它实际上需要make和gcc . 错误输出说(在我的机器上,除其他外):

    “你必须首先安装开发工具 . “

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

  • 3

    您必须安装一些依赖项

    sudo apt-get install libmysql-ruby libmysqlclient-dev
    
  • 3

    在Debian Stretch上,对我有用的包是 default-libmysqlclient-dev

    sudo apt-get update && apt-get install -y default-libmysqlclient-dev

  • 0

    我在我的mac上遇到这个错误,发现我需要从mysql 32bit升级到mysql 64位才能让这个错误消失 . 我在带有ruby 1.9.2和rails3.0.0的intel macbook pro上运行OSX 10.6

    我还需要安装xcode以获得编译gem所需的unix实用程序,如“make” .

    一旦完成,我就可以运行gem install mysql和gem install mysql2而不会出错 .

  • 1

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

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

    Solution only works on Mac OS X

    如果你用自制软件安装MySQL,对我来说有用的是卸载MySQL,并通过MySQL网站安装MySQL Community Edition(https://www.mysql.com/) .

    安装完成后,只需重新输入命令 gem install mysql2 或必要时 sudo gem install mysql2 ,如果您获得权限被拒绝的问题 .

  • 20

    我得到了基于Mac OS X 10.6.6构建的gem 1)确保安装了Developer工具包2)从Source 3下载当前MySQL包(在我的例子中为5.5.8)从cmake.org安装cmake工具4按照mysql分发文件中的安装源部分2.11中的说明进行操作5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include 宝石成功构建,但rdoc和ri抱怨的文档中有两个错误 . 但是现在当我试图要求'mysql2'时,我得到了一个

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

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

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

  • 4

    如果仍然出现错误,请按照Rails 3上的mysql2 gem安装步骤 -

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

    大多数用户都能够安装mysql2 gem .

  • 57

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

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

    这将清除错误的mysql2安装,以便最终的$ bundle安装可以创建一个好的 .

  • 1

    下载正确版本的mysqllib.dll然后将其复制到ruby bin真的适合我 . 点击链接查看mysql2 gem compiled for wrong mysql client library

  • 0

    尝试安装mysql2 gem after upgrading to Mac OS X Mountain Lion 时出现"You have to install development tools first."错误 . 显然,执行此升级会删除命令行编译器 .

    修理:

    • 我卸载了我的旧版Xcode(运行/ Developer / Library中的卸载脚本) . 然后删除/ Developer目录 .

    • 去了AppStore并下载了Xcode .

    • 推出Xcode并进入首选项 - >下载,并安装了命令行工具 .

  • 0

    您遇到此问题是因为您尚未安装MySql . 在安装mysql2 gem之前 . 安装MySQL . 之后,mysql2 gem将安装 .

  • 4

    我只是想为 Mac Users 专门添加这个答案 .

    我的服务器运行得非常好,直到我更新了我的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 install 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才能同意许可 .

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

  • 7

    For those using Windows 7 and 64-bit MySQL

    如果要使用64位MySQL,则应遵循here(也是here)的说明 .

    还有a custom built 64-bit connector无需麻烦 .

  • 2

    libmysql-ruby 已被淘汰并更换 . 新命令:

    sudo apt-get install ruby-mysql libmysqlclient-dev
    

相关问题