"Connection refused" 在本地 PostgresSQL 中,但之前它是可以工作的。
"Connection refused" 在本地 PostgresSQL 中,但之前它是可以工作的。
我不是程序员,尽力而为,但还是需要帮助。\n我在本地的Windows上创建和管理了一个适合我的部门需求的postgressql数据库。我在postgresql.conf中设置了所需的监听IP,并配置了pg_hba.conf。3个月来一直运行良好。\n但是今天我来上班,尝试连接到Postgresql服务器时出现了以下错误:\n
\n无法连接到服务器:连接被拒绝(0x0000274D/10061)。服务器是否在主机“localhost”(::1)上运行,并接受端口5432上的TCP/IP连接?\n
\n我检查了配置文件 - 没有任何更改。我尝试使用listened_ip=\'*\'进行设置测试,但仍然无法工作。当我尝试创建新的服务器时,我看到了这个错误消息。\n发生了什么?如何修复这一切?
最近我遇到了一个问题,本地的PostgreSQL无法连接,显示"Connection refused"的错误。之前它是可以正常工作的,所以我觉得可能是pgAdmin(可能是版本4)或者我的管理员权限有问题,或者涉及到了一些文件,比如postgresql.conf和pg_hba.conf。我尝试了一些在之前的版本中帮助其他人解决类似问题的方法,比如重新设置密码等,但是在PostgreSQL 12.3和PostgreSQL 11.8中都没有起作用。
最后,唯一有效的解决方法是按照StackExchange论坛上这篇帖子的解释进行操作:PostgreSQL Install fail on Windows 10 (icalcs error/acces denied)。具体步骤如下:
1. 卸载并重新安装PostgreSQL。可以从EDB的官方网站:postgresql.org/download下载官方版本,如果这个版本不适用于你,可以尝试其他版本,在PostgreSQL的'文件浏览器'中可以找到:here。
2. 在重新安装后,从开始菜单中启动pgAdmin(如果你之前安装过旧版本的pgAdmin,可能会出现问题,所以需要找到正确的版本来启动)。
需要注意的是,你可以保留数据文件夹,这样就不会丢失数据。我自己的情况是,我从Windows 10的[Drive]/Program Files/PostgreSQL/11中删除了/data文件夹,然后在卸载了版本11.2并重新安装(之前删除的)版本12之后,当我启动pgAdmin4时,我之前的服务器([nameA]和[PostgreSQL 11])和数据库以及新的服务器[PostgreSQL 12]都还在,并且连接也重新建立成功了。
在解决问题之前,我也尝试了一些其他的方法,但是都没有起作用,比如:
2. Question 40532399 'Unable to connect to server for postgres'
3. Database Administrators StackExchange: Problems connecting to Windows-based PostgreSQL
4. Question 16904997 'Connection refused pgerror postgresql and rails'
5. Question 60532791 'Timeout expired pgadmin unable to connect to server'(注意:这是在运行netstat命令之后出现的问题,在这之前端口是没有被占用的)。
希望这篇文章对遇到类似问题的人有所帮助。
"Connection refused" in Local PostgresSQL but it worked before
最近我在使用本地的PostgresSQL数据库时遇到了一个问题,出现了"Connection refused"的错误。之前这个数据库是能够正常工作的,所以我开始寻找出现这个问题的原因并找到了解决方法。
首先,我检查了pg_hba.conf文件,发现没有进行过任何修改。然后,我尝试使用Windows的cmd.exe命令行工具启动PostgresSQL,命令如下:
net start postgresql-9.8
需要注意的是,这里的9.8是我的PostgresSQL版本号,你需要用自己的版本号替换掉。
另外一种方法是通过"开始"菜单中的"运行"来查找服务,具体操作如下:
1. 运行services.msc命令
2. 在服务列表中查找包含"postgres"文本的服务
在我的情况下,我使用的是PostgresSQL 11版本。然而,我在服务列表中找不到这个服务。于是,我尝试执行了"NET START postgresql-11"命令,但是没有获得更多关于版本的信息,因为我无法在PgAdmin中执行SQL查询,由于服务器没有工作,它被锁住了。
接下来,我在cmd.exe中运行了services.msc命令,并在其中找到了一个包含"postgres"文本的服务,服务名为"postgresql-x64-11"。然而,当我尝试执行"NET START postgresql-x64-11"命令时,系统报错:"System Error 5. Access denied"。我不是管理员用户,但是在之前的情况下,即使没有管理员权限,数据库也能正常工作。
我认为可能只有管理员用户才有权限启动该服务。于是,我向我们的管理员请求了管理员权限,并通过终端启动了PostgresSQL服务器。现在,旧的错误信息消失了,但是我仍然无法连接数据库和创建服务器,显示的错误信息是:"Unable to connect to server"。
这很奇怪。于是我检查了一下可能的原因,发现可能还需要允许地址的访问。我在stackoverflow上找到了一个相关的帖子,链接如下:[stackoverflow.com/questions/32439167/…](https://stackoverflow.com/questions/32439167)
根据这个帖子,我尝试了一些解决方法,最终成功解决了这个问题。现在我可以正常连接数据库和创建服务器了。