1. 程式人生 > >Gem install Mysql2的問題

Gem install Mysql2的問題

inux .org ext 解決 building osi nec ons class

運行 ‘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的問題