2009-08-27 8 views
28

私はRuby on Railsプロジェクトをホストサーバー上で開発していましたが、ローカルWindowsマシンで作業することに決めました。Ruby on rails connection problem

私は、以前のプロジェクトから自分のモデルを取り出して新しいプロジェクトに入れて、コンソールにそれらを照会できることを確認したいと考えました。これは失敗します。

さらに正確な問題を反映するために編集:レールがビルドしてモデルにクエリを実行する接続では、1つのクエリしか実行できず、それ以降のすべてのクエリで「接続されていません」例外が発生します。誰が何が起こっているのか知っていますか?私は私の設定をたくさん確認しました。 mysqlサーバの設定がわからない場合は、それを見て喜んでください。

スタックトレース:

Price.find(1) 
ActiveRecord::StatementInvalid: Mysql::Error: query: not connected: SHOW FIELDS FROM `prices` 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:212:in `log' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:320:in `execute' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:466:in `columns' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1271:in `columns' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1279:in `columns_hash' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1578:in `find_one' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1569:in `find_from_ids' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:616:in `find' 
     from (irb):2 

私は私のMySQLデータベースは接続を受け入れ、私は期待していたデータと構造を有していることを確認しました。私は自分の接続などを二重にチェックしました。あなたは、最新のMySQLの宝石を持っている

+0

古いMySQLクライアントライブラリをダウンロードし、あなたはPROD、DEVまたはテストで実行されていますか?これを変更するとどうなりますか? – marcgg

+0

缶接続し、クエリ失敗 >>必要 "mysqlの" => [] >> testconn = Mysql.real_connect( "localhost" を、 "lco_admin"、 "****"、 "lastcall_dev") =># >> testconn.get_server_info => "5.1.37-コミュニティ" >> testconn.host_info => "localhostのTCP/IPを介した" >> testconn.list_tables => [ "bar_schedules" >> testconn.query( "select * from price"、 "bars"、 "bars_features"、 "drinks"、 "features"、 "prices"、 "recurrences"、 "special_schedules"、 "specials"、 "timespans" ) Mysql :: Error:クエリ:接続されていません (irb):7:クエリ中 f ROM(irb):7 – marr75

+0

あなたは@ marr75とまったく同じ問題が発生しています。私はそれを動作させる場合、私は間違いなくこれに投稿します! – jonsidnell

答えて

82

を実行していることを確認するために、それが正しく設定されていることを確認し、私はaptana forumで、この問題に対する解決策を見つけました。

そこには、MySQL 5.1クライアントライブラリがRails 2.2でうまく動かないというメッセージがあります。 彼らが提供するソリューションは簡単です:古いMySQLクライアントライブラリ(libmySQL.dll)をダウンロードしてRuby \ binフォルダにコピーしてください。

これは(Windows XPでは、Rubyの1.8.6、Railsの2.3.3、MySQLの5.1.33)私のために働いた

+0

甘い!私にも働きました:) – jonsidnell

+2

ありがとうございました。 mysqlとrubyのプロジェクトがリンクしているところがたくさんあることには残念ですが、このスタックをWindows上で動作させる方法についてのステップバイステップのガイドを含め、この項目は言及されていません。 – marr75

+3

うわー、私はこのポストを見つけてうれしい!今素晴らしい作品、チップのみんなに感謝! –

3

チェック(レール用> 2.1.2)

は、あなたのconfig/database.ymlをファイル(アダプター、パスワード)を確認してください。すべての環境(DEV、PRODテスト)

は、あなたのMySQLが

+0

宝石を何度もチェックし、実際に私の宝石のすべてをチェックしました。私は意図的にそれを壊すと、私の設定に関する情報を得ることができなくなった(1つまたは複数のサーバ情報ishクエリが失敗するため)データベース設定が正しいことが分かります。これと同じ理由で、私はMysqlと通信でき、mysqlが実行されていることを知っています(サービスを無効にすると、私の設定に関する情報がウェルカムページから表示されなくなります)。 – marr75

1

+0

回答はすでに掲載されています。ありがとう、結構です。 – marr75