49

Rails3.2.3でmysql2gemをインストールしようとしていますが、失敗します。

★  bundle install
Fetching gem metadata from https://rubygems.org/.........
Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.2.0) 
Using activesupport (3.2.3) 
Using builder (3.0.0) 
Using activemodel (3.2.3) 
Using erubis (2.7.0) 
Using journey (1.0.3) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.2) 
Using actionpack (3.2.3) 
Using mime-types (1.18) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.4) 
Using actionmailer (3.2.3) 
Using arel (3.0.2) 
Using tzinfo (0.3.32) 
Using activerecord (3.2.3) 
Using activeresource (3.2.3) 
Using bundler (1.1.3) 
Using coffee-script-source (1.2.0) 
Using execjs (1.3.0) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.6.6) 
Using rdoc (3.12) 
Using thor (0.14.6) 
Using railties (3.2.3) 
Using coffee-rails (3.2.2) 
Using jquery-rails (2.0.2) 
Installing mysql2 (0.3.11) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/rarneson/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/rarneson/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
    --with-mysql-config
    --without-mysql-config
    --with-mysql-dir
    --without-mysql-dir
    --with-mysql-include
    --without-mysql-include=${mysql-dir}/include
    --with-mysql-lib
    --without-mysql-lib=${mysql-dir}/lib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mlib
    --without-mlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-zlib
    --without-zlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-socketlib
    --without-socketlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-nsllib
    --without-nsllib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mygcclib
    --without-mygcclib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /Users/rarneson/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11 for inspection.
Results logged to /Users/rarneson/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/ext/mysql2/gem_make.out
An error occured while installing mysql2 (0.3.11), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.

バンドルインストールを実行していますが、これはGemfileにあります。

gem 'mysql2', '~> 0.3.11' 

私は現在、MySQLをMAMPで実行しています。これが悪い考えであるかどうかはわかりません。バニラMySQlを実行する必要がありますが、現在の問題はgemをインストールすることだけのようです。私はここスタックオーバーフローでこれらの問題のかなりの数を見てきましたが、すべてが少し異なっているように見えるか、本当に複雑な解決策があります。足りないものはありますか?何か簡単なこと?あほらしいもの?必要に応じて、outファイルから追加情報を提供できます。一部の人々は開発にSQLiteを使用し、次に本番環境でMySQLをテストすることを読みましたが、それはかなり恐ろしい考えのように聞こえます。

4

8 に答える 8

129

https://github.com/brianmario/mysql2/issues/8から

これをコンソールにコピーしただけです

sudo apt-get install mysql-client libmysqlclient-dev

そして働きました!!

于 2012-07-24T00:00:00.970 に答える
40

Homebrew for Macを使用して mysql をインストールしました。

brew install mysql

次に、gem コマンドを使用して mysql2 gem をインストールしました。

sudo gem install mysql2
于 2012-10-28T00:18:22.810 に答える
17

これは主に mysql ヘッダーの不足によるものです。mysql 開発者 (mysql-devel) パッケージをインストールしてみてください。

通常、このエラーは「libmysqlclient-dev」パッケージが見つからない場合に発生します

于 2012-04-07T05:24:15.863 に答える
1

MAMPを使用せずにMySQLの新しいコピーをインストールするだけで、うまくいきました。また、32 ビット版ではなく 64 ビット版を必ずインストールする必要がありました。

于 2012-05-15T14:14:35.847 に答える
0

Centos の解決策を説明しているこのスレッドErrors installed mysql2 gem via the Bundlerをたどると、この問題は修正されます。OS に関してコマンドを微調整すれば、mysql2 gem を正常にインストールできます。

于 2012-08-22T06:19:13.893 に答える
0

MAMP mysql を PATH に追加するだけで、通常どおり bundle install を実行できます。

$ /Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot

ソース: http://blog-en.mamp.info/2009/08/using-mysql-command-line-with-mamp.html

于 2013-10-29T13:03:41.330 に答える