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