gem install mysql2 错误解决
运行 ‘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
One more thing: �0�2如果只是为了学习Rails,不建议用Mysql,更别提Oracle,都太重。推荐使用SQLite3!!!
Windows 64bit的也用0.2.6吧
因为之后的就编译不到了
thank you
很高兴能帮到你,看了下你的博客,也有一些关于Ruby/Rails的文章,希望多多关注:)
非常感谢
谢谢,你的详细描述对初学者有很大的帮助!
非常感谢, 成功了
很高兴能帮到你