0

我的本地服务器不再适用于我的 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

我最近销毁了我的开发数据库并通过拉出生产数据库重新创建了一个。我认为它在我的 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>'
4

3 回答 3

1

参数 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;
于 2016-11-22T17:33:24.313 回答
0

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

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

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

于 2016-11-22T17:50:18.257 回答
0

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

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

你可以用

$ brew install readline
于 2016-11-18T20:33:48.530 回答