【问题标题】:"Connection refused" in Local PostgresSQL but it worked before本地 PostgresSQL 中的“连接被拒绝”,但它之前工作过
【发布时间】:2020-01-05 08:31:17
【问题描述】:

我不是程序员,我尽力而为,但我需要帮助。 我在 localhost、Windows 上为我的部门需求创建并管理了 postgressql 数据库。我在 postgresql.conf 中设置了监听所需的 ip,并配置了 pg_hba.conf。 并且它运行了 3 个月。

但是今天我来上班,尝试连接Postgresql服务器。看看这个:

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

我检查了配置 - 没有任何变化。我用 listened_ip='*' 测试了设置。还是行不通。当我尝试创建新服务器时,我会看到该消息。

发生了什么?如何解决这一切?

【问题讨论】:

  • 你的 postgres 服务真的在运行吗?
  • 是的,我在 pgAdmin 中做
  • 您的 hba.conf 是否接受 IP6 上的连接?也许我们机器的配置更改将“localhost”从 127.0.0.1 重新路由到 ::1。

标签: windows postgresql


【解决方案1】:

假设你没有修改 pg_hba.conf 文件,你可以使用 windows cmd.exe 启动你的 postgres

net start postgresql-9.8

您使用您的 postgres 版本号而不是 9.8。 反过来,您可以从 (start -> run -> services.msc)

查找您的服务

【讨论】:

  • 我知道我使用的是 Postgresql 11。但是它找不到这个服务。我写“NET START postgresql-11”。我无法获得有关版本的更多信息,因为我无法在 PgAdmin 中编写 sql 查询。已锁定,导致服务器无法正常工作...
  • 在 cmd.exe 中写入 services.msc。然后从那里找到包含 postgres 文本的确切服务名称。如果在那里找不到,则意味着您的 pg 服务以某种方式被卸载。
  • 我发现:postgresql-x64-11。但是,当我尝试执行 NET START postgresql-x64-11 时,它写道:系统错误 5。访问被拒绝(或接近它。它是我的母语,而不是英语)。我不是管理员。但 DB 在没有管理员权限的情况下也能正常工作。
  • 可能只有管理员用户有权限启动服务。
  • 奇怪。检查这个。可能您仍然需要允许地址。 stackoverflow.com/questions/32439167/…
【解决方案2】:

一般想法/假设:

它看起来像是 pgAdmin(可能是第 4 版)或您的管理员权限或上述文件之一(postgresql.conf 和/或 pg_hba.conf)。

在通过一些待办事项和修复在以前版本中帮助其他人之后,我遇到了同样的错误,甚至是密码错误(对于正确的密码);

但是它们都不适用于 postgresql 12.3 版 和/或 postgresql 11.8 版

解决方案版本:

两个小时后唯一有帮助的是: 正如 StackExchange 超级用户论坛上这篇文章中所解释的:'PostgreSQL Install fail on Windows 10 (icalcs error/acces denied)':

  • 卸载并重新安装 postgresql。教育局通过此链接提供的正式版:postgresql.org/download如果您确定此版本不适合您,请尝试其他版本。因此前往 Postgresql 的“文件浏览器”:here
  • 重新安装后,从“开始”菜单启动 pgAdmin(滚动找到文件夹和正确的相关 pgAdmin;旧版本仍可能在快捷方式中徘徊且无法启动)。

注意:您可以保留数据地图,以免丢失任何内容!

在我的情况下,例如:我从 (Windows 10) [Drive]/Program Files/PostgreSQL/11 中删除了 /data 文件夹,并且在我卸载 11.2 版并重新安装(早先删除 12)第 12 版后:当我启动 pgAdmin4 时,我以前的服务器([nameA] 和 [PostgreSQL 11] 和数据库和新服务器 [PostgreSQL 12] 都在那里!并且重新建立了连接

试过了:

之前尝试过的解决方案在我的情况下不起作用:

【讨论】:

    【解决方案3】:

    如果你在 Windows 上安装了官方的 postgreSQL 并接受所有默认设置,那么你可能需要在每次开始查询时手动启动服务(以管理员身份运行 cmd.exe 并输入此命令):

    pg_ctl -D "C:\Program Files\PostgreSQL\[YOUR_POSTGRESQL_VERSION]\data" start
    

    在我的情况下是:

    pg_ctl -D "C:\Program Files\PostgreSQL\12\data" start
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 2015-07-27
      • 2022-11-09
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2017-09-11
      相关资源
      最近更新 更多