2

Unicorn サーバーの開始時に奇妙な問題が発生する -bundle exec ruby unicorn_rails.rb開始は問題ないが、URL にアクセスすると次のように表示される:

Mysql2::Error (Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2))

そのため、Unicorn は、database.yml で構成されているリモート サーバーに接続していないようです (ローカルに接続しようとしているため) bundle exec rails console。環境が正しく設定されていても、その設定を無視しているようです。これは以前は機能していましたが、何かが壊れています。

完全なスタック トレースをここに置きます: https://gist.github.com/mahemoff/6029630

データベース.yml:

staging:
  adapter: mysql2
  database: slide_staging
  host: 192.168.1.255
  port: 3306
  pool: 5
  username: deploy
  password: <%= ENV['DB_PASS'] || "notconfiguredyet" %>
  timeout: 5000
  reconnect: true
4

2 に答える 2

1

ユニコーンの構成にリンクしている可能性があります..

特にアプリをプリロードする場合。内側にこれらの線はありますか?

before_fork do |server, worker|
  # the following is highly recomended for Rails + "preload_app true"
  # as there's no need for the master process to hold a connection
  defined?(ActiveRecord::Base) and
    ActiveRecord::Base.connection.disconnect!

end

after_fork do |server, worker|
  # the following is *required* for Rails + "preload_app true",
  defined?(ActiveRecord::Base) and
    ActiveRecord::Base.establish_connection
end
于 2013-07-18T14:24:58.667 に答える
0

私は最終的にこれを解決しました。Rails 環境がオーバーライドされていたことが判明しましRails.env = 'test'Rails.env=='test'。に正しく設定されtestていても、開発モードが環境で実行されていることに気付いた後、私はそれを理解しました。ENV['RAILS_ENV']development

于 2013-07-18T17:10:40.617 に答える