突然在UsersController中创建了Errno :: ECONNREFUSED #create

时间:2013-12-18 20:53:50

标签: ruby-on-rails postgresql

我无法再将数据保存到我的数据库并获取Errno::ECONNREFUSED in UsersController#createConnection refused - connect(2)。这是在我重新启动Mac之后但重启之前没有任何问题。它看起来应用程序和数据库之间的连接错误,但我不知道如何解决它。

的database.yml

development:
  adapter: postgresql
  encoding: unicode
  database: store_development
  pool: 5
  username: name
  password:

创建行动

  def create
    @user = User.new(user_params)
    if @user.save
      sign_in @user
      UserMailer.signup_confirmation(@user).deliver
        redirect_to root_url, :flash => {notice: "Welcome" }
    else
        render 'new'
    end
  end

它在user.save行上失败,导致我认为这是一个连接错误。

日志文件

Started POST "/users" for 127.0.0.1 at 2013-12-18 15:23:13 -0500
Processing by UsersController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"ZVHiD1fD/wYiTU8zg80BzGih8+VLPyOzPr16Himrv5M=", "user"=>{"name"=>"test", "email"=>"test@example.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Create my account"}
  [1m[35m (0.3ms)[0m  BEGIN
  [1m[36mUser Exists (0.3ms)[0m  [1mSELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('test@example.com') LIMIT 1[0m
  [1m[35mSQL (0.5ms)[0m  INSERT INTO "users" ("created_at", "email", "name", "password_digest", "remember_token", "updated_at") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id"  [["created_at", Wed, 18 Dec 2013 20:23:13 UTC +00:00], ["email", "test@example.com"], ["name", "test"], ["password_digest", "$2a$10$G03yjEWWIsDJMHGOyDEOp.ACJnYGLXBEfHH0upJYTjeXlNxg6OK/i"], ["remember_token", "a622fb4b8a79d61fb3e7201d00658a3364882f36"], ["updated_at", Wed, 18 Dec 2013 20:23:13 UTC +00:00]]
  [1m[36m (0.2ms)[0m  [1mROLLBACK[0m
Completed 500 Internal Server Error in 73ms

Errno::ECONNREFUSED (Connection refused - connect(2)):
  app/controllers/users_controller.rb:34:in `create'

我可以轻松进入store_development数据库,我已经通过运行

启动了服务器
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

如果我运行停止命令,这就是我得到的:

pg_ctl -D /usr/local/var/postgres stop -s -m fast
pg_ctl: server does not shut down

编辑以获取更多信息:我的应用可以访问当前存在的所有数据。我无法将新数据写入数据库。我无法创建或更新返回连接拒绝错误的属性。

1 个答案:

答案 0 :(得分:1)

我发现了这个问题。

系统重启后,我没有再次启动ElasticSearch。拒绝连接是因为无法运行ElasticSearch服务器而不是我的Postgres服务器。