如何修复 Postgres 12 上过时的 postmaster.pid 文件?

dus*_*ter 13 database postgresql macos

我去查看本地 (MacOS 11) 数据库上的 postgres 架构,但无法查看我的架构。DBeaver 中的连接被拒绝!

连接被拒绝 DBeaver

所以我打开了我的 postgres 桌面应用程序,并收到了警告消息,“过时的 postmaster.pid 文件”

我怎样才能解决这个问题?

陈旧的 Postmaster.pid postgres 12 仪表板屏幕截图

dus*_*ter 24

问题是需要手动删除postmaster.pid文件并由postgres重新生成,这些是做的步骤。

  1. 打开终端,然后 cd 进入 postgres 目录: cd /Users/<user_name>/Library/Application\ Support/Postgres
  2. 确保你在正确的地方,ls你应该看到类似的东西var-12
  3. 验证文件是否存在,ls var-12(请记住该文件var-XX与您的 PGSQL 版本相同)
  4. 通过查看桌面应用程序验证 Postgres 服务器未运行
Library/Application Support/Postgres
? ls var-12
PG_VERSION           pg_hba.conf          pg_replslot          pg_subtrans          postgresql.auto.conf
base                 pg_ident.conf        pg_serial            pg_tblspc            postgresql.conf
global               pg_logical           pg_snapshots         pg_twophase          postgresql.log
pg_commit_ts         pg_multixact         pg_stat              pg_wal               postmaster.opts
pg_dynshmem          pg_notify            pg_stat_tmp          pg_xact              postmaster.pid <----
Run Code Online (Sandbox Code Playgroud)
  1. 然后删除postmaster.pid, rm var-12/postmaster.pid
  2. 返回您的控制台,启动您的 postgres 服务器,它应该会再次运行,并且您应该可以完全访问您的架构。

  • var-12 中没有 pid 文件,但我仍然得到 Stale postmaster.pid 文件 (2认同)
  • 我们知道为什么会发生这种情况吗?我已经经历过两次这样的事了。 (2认同)

ken*_*trh 20

由于问题是使用桌面应用程序,我想我只需使用版本无关的非 bash 方法添加到这里的答案:

  1. 打开Postgres桌面应用程序

  2. 点击Server Settings...

  3. 点击Show数据目录

显示数据目录

  1. 重命名或删除postmaster.pid

删除或重命名 postmaster.pid

  1. 再次单击Start桌面应用程序。

启动SQL服务器