Rails本地服务器无法运行:无法连接到服务器:连接被拒绝

时间:2016-11-18 16:46:38

标签: ruby-on-rails localserver connection-refused

我的本​​地服务器不再适用于我的rails应用程序。我收到以下错误消息:

could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?

我去检查我的数据库日志。这是最后几行:

STATEMENT:  CREATE DATABASE starsetmetiers_development;
ERROR:  unrecognized configuration parameter "idle_in_transaction_session_timeout"
STATEMENT:  SET idle_in_transaction_session_timeout = 0;

ERROR:  unrecognized configuration parameter "row_security"
STATEMENT:  SET row_security = off;

FATAL:  database "stars_metiers_development" does not exist
FATAL:  database "stars_metiers_development" does not exist
LOG:  received smart shutdown request
LOG:  autovacuum launcher shutting down
LOG:  shutting down
LOG:  database system is shut down

我最近销毁了我的dev数据库并通过拉动生成数据库重新创建了一个。我认为它在我的database.yml文件中正确引用:

default: &default
  adapter: postgresql
  encoding: unicode
  host: localhost
  # For details on connection pooling, see rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: 5

development:
  <<: *default
  database: starsetmetiers_development

我不明白这个错误来自哪里(我在postgres文件夹中找不到postmaster.pid文件)。 我该如何解决这个问题?

当我尝试运行rails c

时收到此错误消息
/Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/2.0.0/irb/completion.rb:9:in `require': dlopen(/Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/2.0.0/x86_64-darwin14.5.0/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib (LoadError)
  Referenced from: /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/2.0.0/x86_64-darwin14.5.0/readline.bundle
  Reason: image not found - /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/2.0.0/x86_64-darwin14.5.0/readline.bundle
    from /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/2.0.0/irb/completion.rb:9:in `<top (required)>'
    from /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/gems/2.0.0/gems/railties-4.1.8/lib/rails/commands/console.rb:3:in `require'
    from /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/gems/2.0.0/gems/railties-4.1.8/lib/rails/commands/console.rb:3:in `<top (required)>'
    from /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/gems/2.0.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:128:in `require'
    from /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/gems/2.0.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:128:in `require_command!'
    from /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/gems/2.0.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:59:in `console'
    from /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/gems/2.0.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
    from /Users/davidgeismar/.rbenv/versions/2.0.0-p576/lib/ruby/gems/2.0.0/gems/railties-4.1.8/lib/rails/commands.rb:17:in `<top (required)>'
    from ./bin/rails:4:in `require'
    from ./bin/rails:4:in `<main>'

3 个答案:

答案 0 :(得分:0)

您错过了readline依赖项,因为错误输出中的这一行显示:

Library not loaded: /usr/local/opt/readline/lib/libreadline

您可以使用

解决此问题
$ brew install readline

答案 1 :(得分:0)

参数idle_in_transaction_session_timeout是9.6中的新功能 - 我认为您正在尝试将9.6备份上传到早期版本的Postgres。

我将转储顶部注释如下,并在遇到问题时将其工作。您可能希望在有机会时更新Postgres。

SET statement_timeout = 0;
SET lock_timeout = 0;
-- SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
-- SET row_security = off;

答案 2 :(得分:0)

无法连接到服务器:连接被拒绝     服务器是否在主机上运行&#34; localhost&#34; (127.0.0.1)并接受     端口5432上的TCP / IP连接?

上述错误的原因是你的postgresql服务器没有运行。所以请按照您的操作系统运行,如下所示:

Ubuntu: sudo service postgresql start
Fedora: systemctl start postgresql
Windows: net start postgresql-9.x.x