重新启动我的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。
我也犯过类似的错误。
所有这些都是从命令行完成的(根本没有sudo调用)
我验证我已经安装了PostgreSQL psql -V(注意这是一个大写的“V”)
我试图连接到服务器:psql postgres
这就是我在堆栈溢出问题中遇到错误的地方
在做了一些关于可能的修复的研究之后,我显然安装了PostgreSQL,但我没有一个默认的服务器。
我要做的是创建一个自定义数据目录
据我所知,创建自定义数据目录与设置默认服务器是一样的。
由于这是一台新机器(使用apple m1芯片的MacBook Pro 2021),我想找到最简单的解决方案,我相信这个自定义数据目录就是这样。修复此问题的其余步骤如下:
在主目录中,我创建了一个空目录mkdir myData
从主目录,初始化一个服务器:initdb myData(将一堆文件扔到myData目录)
pg_ctl -D myData -l logfile start(启动服务器)
PSQL postgres(连接到服务器)
所以,作为一个刚刚接触PostgreSQL和数据库以及SQL的人,有几点注意事项:
使用\q可以“退出”到服务器的连接(当连接到服务器时,也可以输入“帮助”)
也可以用pg_ctl -D myData stop来“停止”服务器
在这一点上,我现在确定我已经安装了PostgreSQL,有一个服务器,我可以启动和停止,并有能力连接到/断开,该服务器。
我也遇到了同样的问题,这是由于从版本11升级到13.2后版本不兼容
检查错误日志:
/usr/local/var/log/postgres.log
给我:
DETAIL: The data directory was initialized by PostgreSQL version 11, which is not compatible with this version 13.2.
为了解决这个问题,我跑了:
brew postgresql-upgrade-database
然后用brew启动postresql:
brew services start postgresql
我不完全确定为什么,但我的Postgres安装有点搞砸了,一些文件被删除,导致错误OP显示。
尽管我能够运行像brew service restart postgres这样的命令并看到正确的消息,但这个错误仍然存在。
我浏览了postgres文档,发现我的文件/usr/local/var/postgres完全是空的。所以我运行了以下程序:
initdb /usr/local/var/postgres
这个命令似乎发生了一些配置。
然后它让我运行这个:
postgres -D /usr/local/var/postgres
这告诉了我一个邮政局长。Pid文件已经存在。
我只是需要知道brew是否能够拾取我刚刚运行的配置,所以我测试了它。
ls /usr/local/var/postgres
这让我想到了邮政局长。pid文件。然后我做了brew服务停止postgresql,和postmaster。Pid文件消失。然后我做了brew服务启动postgresql和VIOLA,文件重新出现。
然后我继续运行我的应用程序,它确实找到了服务器,但我的数据库似乎消失了。
尽管我知道它们可能根本没有消失——我所做的新的初始化可能创建了一个新的data_area,而旧的data_area没有被指向。我必须看看它在哪里,并把它点回来,或者只是重新创建我的数据库。
希望这能有所帮助!阅读postgres的文档对我帮助很大。我讨厌看到类似于“粘贴这个就可以了!”这样的答案,因为我不知道到底发生了什么,为什么会这样。