我使用rails s -e production
正确运行了我的rails应用程序,但是当我运行rails generate scaffold Campaign title:string owner:string
时,我得到了
/Users/myhome/vendor/bundle/ruby/2.0.0/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)
为什么会这样? apache正在运行,因为应用程序正在运行
答案 0 :(得分:2)
我认为您已在only
的生产部分中指定了套接字database.yml
。
执行rails generate..
时,它将在development
环境中运行。所以它无法连接到mysql数据库。在开发过程中,无需以production
模式运行应用程序。您可以使用rails s
在开发模式下运行它。
另一方面,在生产服务器上,您必须像这样指定生产环境
RAILS_ENV=production rails generate ..