8

私のOSX開発ラップトップではすべて正常に動作します。

アプリを本番環境にデプロイすると、期待どおりに実行され、データが表示されます。

ただし、本番サーバーで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'

socket: /tmp/mysql.sockdatabase.ymlから削除してみました-同じ結果です。

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

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


ルビー1.9.3p125

レール3.2.2

mysql2 gem 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
4

4 に答える 4

36

解決しました。

私がする必要があるのは...

$ RAILS_ENV=production bundle exec rails console
于 2012-05-03T23:29:41.250 に答える
8

これを行う別の方法:

./script/rails console production

于 2012-05-04T07:30:39.227 に答える
1

私は実行で解決しました:

 RAILS_ENV=production bundle exec rails c

リンクの詳細

于 2013-06-09T03:42:55.830 に答える
0

orコマンドに--environment=production引数を追加することでこれを解決することもできますrails crails console

rails c --environment=production

それで全部です。

これがお役に立てば幸いです

于 2020-01-30T17:00:17.067 に答える