【问题标题】:PostgreSQL: could not connect to server - Connection refused errorPostgreSQL:无法连接到服务器 - 连接被拒绝错误
【发布时间】:2017-04-28 18:07:31
【问题描述】:

在过去一周,我未能设置 postgreSQL 来处理我的 Ruby-on-Rails 项目。
我已经尝试卸载并重新安装 postgreSQL,现在两次。
但是当我尝试启动 postgreSQL 时,我不断收到以下错误:

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

我查看了许多在线资源,包括 stackoverflow,但似乎没有任何帮助。
我的 pg_hba.conf 文件的关键部分如下所示:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

我的postgresql.conf文件的关键部分如下:

listen_addresses = '*'      # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost'; use '*' for all
                    # (change requires restart)
port = 5432             # (change requires restart)
max_connections = 100           # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = ''   # comma-separated list of directories
                    # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation

到目前为止,我看到的大多数建议都是基于这两个文件。 (就我而言,它们已经正确配置)。我还尝试禁用防火墙并重新启动 postgreSQL,但没有帮助。有人对我有什么建议吗?谢谢!

【问题讨论】:

  • 你和数据库服务器在同一台电脑上吗?如果没有,您需要设置防火墙
  • 是的,我使用的是与数据库服务器相同的 PC。如何设置防火墙?我已经尝试禁用它以及在 Windows 防火墙上启用 postgres 应用程序。
  • 只有在您使用不同的电脑时,防火墙才会成为问题。您可以使用pgAdmin 连接吗?检查服务是否启动并且您使用的是正确的端口
  • 我尝试使用 pgAdmin 进行连接,它运行的错误与上述相同。端口号是正确的,所有文件都匹配。
  • 检查服务是否正在运行。第一次安装应该很容易。我建议你尝试另一台电脑。

标签: database postgresql database-connection database-server


【解决方案1】:

在设置 PostgreSQL 9.6.16 以使用 Python/Django 时遇到同样的问题,但这纯粹是一个数据库问题。

解决办法在于报错:其实我在官方PostgreSQL documentation里面发现了这个报错,所以是常见的报错。

这是我解决此问题的方法:

  1. 始终首先启动 postgres database server,使用 postgres 或包装程序 pg_ctl
    我在 windows 10 上使用了下面的命令。
    记住,-D 之后的任何内容都应该是您安装 PostgreSQL 的路径,到 data 文件夹,该文件夹包含 pg_hba.confpostgresql.conf 文件。
> pg_ctl start -D "C:/Program Files/PostgreSQL/9.6/data"
  1. 如果运行良好,您就可以准备好使用access 数据库服务器。
    打开另一个cmd shell,然后键入以下命令。
    记住您输入的密码安装时PostgreSQL?
    在询问Password for user postgres:时输入该密码
> psql -U postgres

完成后,您现在可以相应地转到CREATE ROLECREATE DATABASE

【讨论】:

  • 在哪里运行这些命令? SQL 外壳? Windows 命令?什么是“包装程序 pg_ctl”??
  • 嗨,@nishi。是的,> 符号表示您可以在 Windows cmd 中轻松运行它。确实,pg_ctl 是一个包装器/实用程序,可帮助您在PostgreSQL 服务器上运行几个任务。 Here's a good read on that
  • 感谢@MwamiTovi。好吧,当我尝试运行此命令时的问题是因为 psql 命令并不总是设置在 Windows 环境路径中。我通过编辑 postgres 服务器解决了这个问题。我的在端口 5433 上,我的数据库在 5432 上发送信息,如果它可以帮助更多的读者。但我仍然无法在我的 cmd 上运行 pg_ctl。
【解决方案2】:

[已解决]

经过更多研究。我深入查看了我在下载后收到的错误并得出了这个解决方案here

祝遇到同样问题的人好运!

【讨论】:

    猜你喜欢
    • 2013-05-19
    • 1970-01-01
    • 2023-03-17
    • 2020-08-19
    • 2011-12-29
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多