PostgreSQL:无法连接到服务器 - 连接被拒绝错误

Jon*_*rin 4 database postgresql database-connection database-server

在过去的一周里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?"
Run Code Online (Sandbox Code Playgroud)

我查看了许多在线资源,包括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
Run Code Online (Sandbox Code Playgroud)

我的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
Run Code Online (Sandbox Code Playgroud)

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

Mwa*_*ovi 5

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

解决方法在于错误:事实上,我在PostgreSQL官方文档中发现了这个错误,因此这是一个常见错误。

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

  1. 始终首先启动 postgres数据库服务器,使用postgres或包装程序pg_ctl
    我在下面使用了命令windows 10
    记住,后面的-D应该是你安装 PostgreSQL 的路径,到data包含pg_hba.confpostgresql.conf文件的文件夹。
> pg_ctl start -D "C:/Program Files/PostgreSQL/9.6/data"
Run Code Online (Sandbox Code Playgroud)
  1. 如果运行良好,你准备访问数据库服务器。
    打开另一个cmdshell,然后键入以下命令。
    记住您在安装时输入的密码PostgreSQL
    询问时输入该密码Password for user postgres:
> psql -U postgres
Run Code Online (Sandbox Code Playgroud)

完成后,您现在可以继续CREATE ROLECREATE DATABASE相应地进行。