2012-05-03 14 views
8

OS X開発ラップトップですべてうまく動作します。プロダクションレールコンソールは起動しません

アプリをプロダクションにデプロイすると、アプリが正常に実行されて表示されます。

私は本番サーバー上のRails コンソールを実行しようとするしかし、私はエラーを取得...

$ rails console -e production 
/opt/deployed_rails_apps/con_app_rails_3/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/client.rb:44: 
    in `connect': Can't connect to local MySQL server through socket 
     '/tmp/mysql.sock' (2) (Mysql2::Error) 

    from /opt/deployed_rails_apps/con_app_rails_3/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `initialize' 
    from /opt/deployed_rails_apps/con_app_rails_3/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `new' 

私はdatabase.ymlのからsocket: /tmp/mysql.sockを削除しようとした - 同じ結果。

アプリケーションは実行されますが、特定のタスクを実行するために、本番コンソールでもコンソールにアクセスできる必要があります。

MySQLコマンドラインクライアントを使用してMySQLサーバに接続することができます。


ルビー1.9.3p125

のRails 3.2.2

mysql2宝石0.3.11

のMySQLサーバ:5.1.61

生産ホスト:Linuxの2.6.32- 220.4.2.el6.x86_64

database.yml

development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: con_app_rails_3_development 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

test: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: con_app_rails_3_test 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    host: dbhost 
    database: con_app_rails_3_production 
    pool: 5 
    username: xxxx 
    password: xxxx 
    socket: /tmp/mysql.sock 

答えて

35

解決しました。

私が行うために必要なすべてのだった...

$ RAILS_ENV=production bundle exec rails console 
+0

私は 'bundle exec'をする必要はありませんでしたが、コマンドラインで' RAILS_ENV = production' FIRSTを指定することが重要でした。 –

8

これを行うための別の方法:

./script/rails console production

1

私は実行で解決:

RAILS_ENV=production bundle exec rails c 

詳細link

関連する問題