web-dev-qa-db-ja.com

SnowLeopardにmysql2gemをインストールしてRails 3 with rvm

最近Rails 3にアップグレードし、Rails 3.0.3で新しいアプリケーションを作成しましたが、エラーが発生し続けます

 Macintosh:$ Rails server 
 => WEBrick 
 => Rails 3.0.3アプリケーションの起動http://0.0.0.0:3000
=>-dで呼び出してデタッチ
 => Ctrl-Cでサーバーをシャットダウン
 [2010-11-28 11 :32:47] INFO WEBrick 1.3.1 
 [2010-11-28 11:32:47] INFO Ruby 1.8.7(2010-04-19)[i686 -darwin10.4.0] 
 [2010-11-28 11:32:47] INFO WEBrick :: HTTPServer#start:pid = 1055 port = 3000 
 
 
 127.0.0.1のGET "/"をSunNov 28 11:32:52 +0000 2010 
 
 RuntimeError(!!! mysql2 gemがありません。Gemfileに追加してください:gem ' mysql2 '):
 
 

私は64ビットマシンを持っています。エラーはドキュメントにのみあり、gemが正しくインストールされているように見えました。

 Macintosh:$ env ARCHFLAGS = "-Arch i386" gem install mysql2 --- with-mysql-config =/usr/local/mysql/bin/mysql_config 
ネイティブ拡張の構築。これにはしばらく時間がかかる場合があります... 
 mysql2-0.2.6のインストールに成功しました
 1つのgemがインストールされました
 mysql2-0.2.6のriドキュメントをインストールしています... 
クラスClientnotknownのクラス/モジュール 'mMysql2'を囲んでいます
 mysql2-0.2.6のYARD(yri)インデックスを作成しています... 
 mysql2-0.2.6のRDocドキュメントをインストールしています... 
クラスClientのクラス/モジュール 'mMysql2'を囲んでいます
 

GemFileにgemを追加しました

 source'http://rubygems.org '
 
 gem'Rails'、 '3.0.3' 
 gem'mysql2 '
 gem 'sqlite3-Ruby'、:require => 'sqlite3' 
 

私のGemFile.lockは次のようになります

 GEM 
リモート:http://rubygems.org/ 
仕様:
 abstract(1.0.0)
 actionmailer(3.0.3) 
アクションパック(= 3.0.3)
メール(〜> 2.2.9)
アクションパック(3.0.3)
アクティブモデル(= 3.0.3)
 activesupport(= 3.0.3)
 builder(〜> 2.1.2)
 erubis(〜> 2.6.6)
 i18n(〜> 0.4)
ラック(〜> 1.2.1)
ラックマウント(〜> 0.6.13)
ラックテスト(〜> 0.5.6)
 tzinfo(〜> 0.3 .23)
 activemodel(3.0.3)
 activesupport(= 3.0.3)
ビルダー(〜> 2.1.2)
 i18n(〜> 0.4) 
 activerecord(3.0.3)
 activemodel(= 3.0.3)
 activesupport(= 3.0.3)
 arel(〜> 2.0.2)
 tzinfo(〜> 0.3.23)
 activeresource(3.0.3)
 activemodel(= 3.0.3)
 activesupport(= 3.0.3)
 activesupport(3.0.3)
 arel(2.0.4)
ビルダー(2.1.2)
 erubis(2.6.6)
 abstract(> = 1.0.0)
 i18n(0.4.1)
 mail(2.2.10)
 activesupport(> = 2.3.6)
 i18n(〜> 0.4.1)
 mime-types(〜> 1.16)
 treetop(〜> 1.4.8)
 mime -タイプ(1.16)
 mysql2(0.2.6)
ポリグロット(0.3.1)
ラック(1.2.1)
ラックマウント(0.6.13 )
ラック(> = 1.0.0)
ラックテスト(0.5.6)
ラック(> = 1.0)
 Rails(3.0.3)
 actionmailer(= 3.0.3)
 actionpack(= 3.0.3)
 activerecord(= 3.0.3)
 activeresource (= 3.0.3)
 activesupport(= 3.0.3)
バンドラー(〜> 1.0)
レールティー(= 3.0.3)
レールティー(3.0。 3)
アクションパック(= 3.0.3)
 activesupport(= 3.0.3)
レーキ(> = 0.8.7)
トール(〜> 0.14。 4)
 rake(0.8.7)
 sqlite3-Ruby(1.2.4)
 thor(0.14.6)
ツリートップ(1.4.9) 
 polyglot(> = 0.3.1)
 tzinfo(0.3.23)
 
 PLATFORMS 
 Ruby 
 
 DEPENDENCIES 
 mysql2 
 Rails(= 3.0.3)
 sqlite3-Ruby 
 

宝石リスト

 Macintosh:$ gem list 
 
 *** LOCAL GEMS *** 
 
 abstract(1.0.0)
 actionmailer (3.0.3)
 actionpack(3.0.3)
 activemodel(3.0.3)
 activerecord(3.0.3)
 activeresource(3.0.3)
 activesupport(3.0.3)
 acts_as_ferret(0.4.4)
 arel(2.0.4)
 builder(3.0.0、2.1.2)
 bundler(1.0.7)
 capistrano(2.5.9)
 dnssd(1.3)
 erubis(2.6.6)
 fastthread(1.0.7) 
 gnuplot(2.2)
 highline(1.6.1、1.5.1)
 hpricot(0.8.1)
 i18n(0.4.2、0.4.1) 
 libxml-Ruby(1.1.3)
 linecache(0.43)
 mail(2.2.10)
 memcache-client(1.8.5、1.7.6) 
 memcached(0.17.5)
 mime-types(1.16)
 mysql2(0.2.6)
 net-scp(1.0.4、1.0.2) 
 net-sftp(2.0.5、2.0.2)
 net-ssh(2.0.23、2.0.15)
 net-ssh-gateway(1.0.1)
ポリグロット(0.3.1)
ラック(1.2.1、1.0.1、1.0.0)
ラックマウント(0.6.13)
ラックテスト(0.5.6)
レール(3.0.3)
 railties(3.0.3)
 rake(0.8.7、0.8.4)
 rcov(0.9.9、0.9.8)
 rdoc(2.5.11) 
 RedCloth(4.2.2)
 rmagick(2.12.2)
 Ruby-debug-base(0.10.3)
 Ruby-debug-ide(0.4。 5)
 ruby​​gems-update(1.3.7、1.3.5、1.3.3)
 rvm(1.1.1)
 sqlite3-Ruby(1.3.2、1.2.4 )
 test-spec(0.10.0)
 text-format(1.0.0)
 text-hyphen(1.0.0)
 thor(0.14.6 )
 treetop(1.4.9)
 tzinfo(0.3.23)
 yard(0.5.8)
 

私のMySQLは稼働しています:

 Macintosh:$ mysql -uroot 
 MySQLモニターへようこそ。コマンドは;で終わりますまたは\ g。
 MySQL接続IDは1 
サーバーバージョン:5.1.53 MySQL Community Server(GPL)
 
 Copyright(c)2000、2010、 Oracleおよび/またはその関連会社。 All rightsreserved。
このソフトウェアには一切の保証がありません。これはフリーソフトウェアであり、
 GPLv2ライセンス
 
の下で変更および再配布することを歓迎します。「help;」と入力します。または「\ h」でヘルプを表示します。 '\ c'と入力して、現在の入力ステートメントをクリアします。
 
 mysql> 
 

これが私の新しいアプリケーションにあるすべてですが、それでもmysql2gemが見つからないという問題が発生します。

X Code3.2.4がインストールされたSnowLeopard10.6.5があります。

何か案が?

前もって感謝します!

31
J Fong

実際にdatabase.ymlに間違ったアダプターが設定されていました

したがって、修正は

開発:
アダプター:mysql2 
データベース:development_database 
ユーザー名:root 
パスワード:

の代わりに

アダプター:mysql 

ドー!

89
J Fong

最近これが表示されているのは、mysql20.3がActiveRecordアダプターを削除したためです。ActiveRecordアダプターは現在Rails 3.1の一部です。

WARNING: This version of mysql2 (0.3.2) doesn't ship with the ActiveRecord adapter bundled anymore as it's now part of Rails 3.1
WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x

Rails 3.0.xを使用している場合は、それに応じてGemfileを調整してください

gem 'mysql2', '~> 0.2.6'
5
fx_