pgAdmin:无法连接到服务器:连接被拒绝

3

我正在尝试使用pgAdmin查看数据库。在启动pgAdmin并成功输入我的“主密码”后,当我尝试打开唯一的实例时(在这种情况下为:“PostgreSQL 12”),出现以下错误:

我遇到了pgAdmin的这个错误:

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

Connection refused错误图片 Connection refused错误图片

在输入我已经用于四个不同程序的正确且唯一密码后,我仍然收到了同样的弹出式错误提示框。现在,没有一个程序可以再访问该数据库。

我尝试过右键单击“PostgreSQL 12”并清除密码,但是这并没有解决问题。

我会说,我最近进行了备份还原,因为我进行了硬件升级,将硬盘驱动器更换为固态硬盘。

我正在运行以下内容: MacOS High Sierra 10.13.6 PostgreSQL 12 pgAdmin 4

更新1: 我找到了一些东西:我想这是安装的完整路径:/Library/PostgreSQL/12/bin

我在bin文件夹中运行: ./pg_ctl --help 然后得到完整的帮助菜单选项。现在,我需要在正确的服务器上运行status、start或stop吗?哪个服务器或文件可能是那个?是数据文件夹,看起来好像被锁定了?

更新2: 我运行了./pg_ctl start 并得到:“pg_ctl:未指定数据库目录且环境变量PGDATA未设置”

更新3: 我运行了./pg_ctl start -D /Library/PostgreSQL/12/data 然后得到:“pg_ctl:无法打开PID文件“/Library/PostgreSQL/12/data/postmaster.pid”:拒绝访问”

目录图片 目录图片

更新4: 我从/Library/PostgreSQL/12/bin文件夹中运行了: sudo -u postgres ./pg_ctl start -D /Library/PostgreSQL/12/data 并在输入密码后:

waiting for server to start....2020-04-22 15:57:51.766 CDT [5255] LOG:  starting PostgreSQL 12.2 on x86_64-apple-darwin, compiled by Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn), 64-bit
2020-04-22 15:57:51.766 CDT [5255] LOG:  listening on IPv6 address "::", port 5432
2020-04-22 15:57:51.766 CDT [5255] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2020-04-22 15:57:51.768 CDT [5255] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2020-04-22 15:57:51.782 CDT [5255] LOG:  redirecting log output to logging collector process
2020-04-22 15:57:51.782 CDT [5255] HINT:  Future log output will appear in directory "log".
 stopped waiting
pg_ctl: could not start server

因此,为了回答一些问题,我无法启动服务器; 因此,在pgAdmin中出现的错误。

这里有类似的错误:(https://youtu.be/Q32iqfckSNw?t=293)但是,这个人正在使用Windows。在Mac上,使用标准shell找不到此命令。也许需要在Mac上使用随pgAdmin一起提供的psql shell? - user13375649
  1. 请检查PostgreSQL 12服务是否已启动。
  2. 首先尝试使用postgresql安装目录/ bin中的psql连接到postgresql。
- Amjad Shahzad
如果您一开始就无法连接到数据库服务器,那么您的密码是否正确就无关紧要了。您启动了数据库服务器吗?启动成功了吗? - jjanes
@jjanes,请查看更新2。我该如何启动服务器?谢谢。 - user13375649
服务器开机后会自动启动吗?你肯定曾经让它运行过,还记得当时是怎么做的吗?当你“从备份中恢复”时,具体是指什么操作? - jjanes
@jjanes 在我从备份中恢复之前,它是自动启动的。请参考这个stackoverflow链接并查看标题“如果您的计算机突然重新启动”。我认为那是我的问题,因为我进行了恢复;我正在考虑删除postmaster.pid文件。你觉得呢? - user13375649
1个回答

1

如果你使用的是Windows系统,你需要在任务管理器服务部分启动Postgres。这样它就能自动连接并确保端口5432没有被防火墙阻拦。我已经尝试过了,而且它确实可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接