重新启动Mac后,我遇到了可怕的Postgres错误:

psql: could not connect to server: No such file or directory
 Is the server running locally and accepting
 connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

发生这种情况的原因是因为我的macbook由于一个无关的问题而完全冻结,我不得不使用电源按钮进行硬重启.重新启动后,由于这个错误,我无法启动Postgres.

推荐答案

警告:If you delete postmaster.pid without making sure there are really no 100 processes running you, could permanently corrupt your database.(如果邮局主管已退出,PostgreSQL应自动将其删除.).

解决方案:这解决了问题——我删除了这个文件,然后一切都正常了!

/usr/local/var/postgres/postmaster.pid

--

下面是我如何理解为什么需要删除这些内容的.

  1. 我使用以下命令查看是否有任何PG进程正在运行.对我来说没有,我甚至无法启动PG服务器:

    ps auxw | grep post
    
  2. 我搜索了文件.s、 PGSQL.5432这是在上面的错误消息.我使用了以下命令:

    sudo find / -name .s.PGSQL.5432 -ls
    

    在搜索了我的整个电脑后,这没有显示任何内容,所以文件不存在,但显然psql"希望"或"认为它在那里".

  3. 我查看了服务器日志(log),发现以下错误:

    cat /usr/local/var/postgres/server.log
    

    在服务器日志(log)的末尾,我看到了以下错误:

    FATAL:  pre-existing shared memory block (key 5432001, ID 65538) is still in use
    HINT:  If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
    
  4. 按照错误消息中的建议,我删除了邮局主管.pid文件与服务器位于同一目录中.日志(log)这解决了问题,我可以重新启动.

所以,似乎我的macbook冻结和硬重启导致Postgres认为即使在重启后,它的进程仍在运行.删除此文件已解决.希望这对其他人有帮助!很多人都有类似的问题,但大多数答案都与文件权限有关,而我的情况则不同.

Postgresql相关问答推荐

PostgreSQL(container)中使用80K子分区表处理共享内存不足错误

为什么Postgres在打印时能完全缩短时间跨度?

无法将 json 范围读取为 pgtype.Int4range

安装age-installation时出错

如何重新格式化已获取的 psql 查询输出?

Supabase 数据库大小问题

Regexp_replace 行为会改变,如果它用空白字符串或 null 替换字符串数组中的字符串

JPA findBy 字段忽略大小写

是否可以使用 pgAdmin4 自动格式化/美化 SQL 查询?

Rails 迁移:PostgreSQL 上的 Bigint 似乎失败了?

Postgres/psycopg2 - 插入字符串数组

使用 RPostgreSQL 进行 UTF-8 / Unicode 文本编码

断言错误:Django-rest-Framework

如何在psql中退出查询结果查看器?

在不存在的行上有select for update块

理解 Postgres 行大小

仅在存在时重命名列

为什么是||在 PostgreSQL/Redshift 中用作字符串连接

Postgresql 对象 ID 和元组

如何在 postgresql 中获取整个表的哈希?