Rails:生产环境下Rails控制台无法启动

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服务器。


ruby 1.9.3p125

Rails 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个回答

36

问题已解决。

我所需要做的就是...

$ RAILS_ENV=production bundle exec rails console

我不需要执行 bundle exec,但在命令行上首先指定 RAILS_ENV=production 是很重要的。 - Tyler Collier

8
另一种方法是:
``` ./script/rails console production ```

1
我用运行解决了这个问题:

 RAILS_ENV=production bundle exec rails c

更多关于link的细节


0

您也可以通过将--environment=production参数附加到rails crails console命令来解决此问题。

rails c --environment=production

就这些了。

希望这能有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接