[英]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
您還可以通過將--environment=production
參數附加到rails c
或rails console
命令來解決此問題
rails c --environment=production
就這樣。
我希望這有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.