运行 ‘bundle install’ 或者 ‘gem install mysql2′ 遇到如下错误

> gem install mysql2
ERROR: Error installing mysql2:
The 'mysql2' native gem requires installed build tools. Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'

或者是

Error installing mysql2:
ERROR: Failed to build gem native extension. C:/Ruby192/bin/ruby.exe extconf.rb

一般是因为没有安装编译器和没有安装mysql

最简单的解决办法:

如果rails 版本<3.1.0就安装mysql 0.2.6。如果rails 版本是3.1.*才需要安装mysql 0.3.*。切记!

默认安装的是mysql2 0.3.7,这个版本变化较多,可以安装旧版本gem,经测试安装0.2.6不会报错。

gem install mysql2 -v 0.2.6

如果你一定要安装最新版本,可以参照下面方法。

Linux下解决方法:

# sudo apt-get install libmysql-ruby libmysqlclient-dev

Windows下比较麻烦,要先安装DevKit和Mysql。

安装DevKit见我的另一篇文章windows下安装DevKit

安装Mysql就不细说了,下载后双击即可

以上两步完成后,要这样安装mysql2

> gem install mysql2 -- '--with-mysql-dir="C:\Program Files\MySQL\MySQL Server 5.5"'
#一定要注意引号,很多朋友忘记带引号,导致安装出错
Updating installed gems
Updating mysql2
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
Successfully installed mysql2-0.3.2
Gems updated: mysql2
Installing ri documentation for mysql2-0.3.2...
Enclosing class/module 'mMysql2' for class Client not known
Installing RDoc documentation for mysql2-0.3.2...
Enclosing class/module 'mMysql2' for class Client not known

这表示安装成功了,但是使用时可能还会报错。

最后一步:将mysql安装目录下的bin下的libmysql.dll复制到 ruby安装目录/lib下。

注意:为保证版本一致,libmysql.dll不要从网上下载。尽量从自己安装目录下复制。

附:

有时启动服务器时报错

Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError)

但是当gem install activerecord-mysql2-adapter 时会报找不到这个gem。

一般是因为安装的mysql2版本过新,因为mysql2 0.3.2版本开始放弃支持rails 3.0.*。

解法:

gem uninstall mysql2
gem install mysql2 -v 0.2.7 参考文献:http://rubyer.me/blog/138/

Gem install Mysql2的问题的更多相关文章

  1. bundle install 出现 &#39;gem install mysql2 -v &#39;0.3.15&#39; succeeds before bunding &#39;

    bundle install 出现  'gem install mysql2 -v '0.3.15' succeeds before bunding ' 解决:sudo apt-get install ...

  2. windows rails new demo时候出错Make sure that `gem install mysql2 -v '0.3.15'` succeeds before bundling.

    rails new demo --database=mysql最后报错Gem files will remain installed in D:/BillFiles/rails_dev/Ruby193 ...

  3. gem install mysql遇到问题。解决方案

    今天遇到的问题,是使用gem install mysql遇到的.报下面的错误 Building native extensions. This could take a while... ERROR: ...

  4. mac gem install nokogiri error

    Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /Users/angela/.rbenv/versions/1.9 ...

  5. OSX 10.11 cocoapods安装命令: sudo gem install -n /usr/local/bin cocoapods

    10.11 cocoapods安装命令: sudo gem install -n /usr/local/bin cocoapods

  6. gem install 出现Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org

    在安装了rvm来管理多版本的ruby之后,想在不同环境下安装一些gems,结果gem install puma 之后,发现一次又一次失败. gem install 出现Errno::ECONNRESE ...

  7. sudo gem install cocoapods 没反应问题

    1. 尝试更新 sudo gem update --system 2. 查看安装详细 sudo gem install cocoapods -V 3.详细使用有个链接 http://blog.csdn ...

  8. ruby on rails gem install pg时无法安装

    gem install pg -v '0.18.2' Building native extensions. This could take a while... ERROR: Error insta ...

  9. gem install factory_girl

    文章是从个人博客转过来的,  可以直接访问 iwangzheng.com https://github.com/thoughtbot/factory_girl https://github.com/t ...

随机推荐

  1. 探索JavaScript中Null和Undefined的深渊

    当讨论JavaScript中的原始数据类型时,大多数人都知道的基本知识,从String,Number到Boolean.这些原始类型相当简单,行为符合常识.但是,本文将更多聚焦独特的原始数据类型Null ...

  2. python一些语法糖用法

    @修饰符 '@'符号用作函数修饰符是python2.4新增加的功能,修饰符必须出现在函数定义前一行,不允许和函数定义在同一行.也就是说@A def f(): 是非法的. 只可以在模块或类定义层内对函数 ...

  3. 19 ArcGIS Server 备份与恢复

    一.备份过程 1.找到已经安装的arcgis server安装目录,并找到备份工具: 2.快捷键win + R启动cmd,将备份工具文件拖入cmd窗口,enter 3. 通过backup.py脚本进行 ...

  4. Linux下查找某一文件常用的方式

    当我们需要在ubuntu中找到之前的某一个文件,该用什么方式呢?用以下命令你就可以快速定位: find / -name "pycharm.sh" 用find查找这个命令,确定查找范 ...

  5. js对重复数组去重

    var arr=[1,1,1,1,2,2,2,3,3,4,1,4,5,7,8,7,7] let m = {} arr.filter(item => m[item] >= 1 ? false ...

  6. 2019-04-25t16:19:49 转成正常的年月日

    1.首先得到的值时2019-04-25t16:19:49 2.想转成2019-04-25 3. var d = new Date(2019-04-25t16:19:49); var yy = d.ge ...

  7. 数电基础之《OC门》

    OC门,又称集电极开路门,Open Collector.   为什么引入OC门?实际使用中,有时需要两个或两个以上与非门的输出端连接在同一条导线上,将这些与非门上的数据(状态电平)用同一条导线输送出去 ...

  8. spring-data-mongodb中的MongoTemplate与MongoRepository

    springboot添加maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <a ...

  9. 6个项目带你全面掌握Laravel框架

    Laravel框架简介: Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来,帮你构建一个完美的网络APP,而且每行 ...

  10. leetcode143. Reorder List

    用快慢双指针,可以使慢指针到达中间的时候快指针到达最后一个元素(奇数),或者倒数第二个元素(偶数).慢指针后面的元素是后半个链表,把后半个链表进行reverse,然后再插在原来的链表中就可以了 /** ...