簡體   English   中英

Rails:生產 Rails 控制台無法啟動

[英]Rails: Production Rails console won't start

在我的 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

導軌 3.2.2

mysql2 寶石 0.3.11

MySQL 服務器:5.1.61

生產主機:Linux 2.6.32-220.4.2.el6.x86_64

數據庫.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

解決了。

我需要做的就是...

$ RAILS_ENV=production bundle exec rails console

另一種方法來做到這一點:

./script/rails console production

我用運行解決了:

 RAILS_ENV=production bundle exec rails c

有關鏈接的更多詳細信息

您還可以通過將--environment=production參數附加到rails crails console命令來解決此問題

rails c --environment=production

就這樣。

我希望這有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM