无法在OSX Mavericks上重新启动Postgres-“操作已在进行中”?

Ric*_*ard 5 postgresql macos osx-mavericks

我在OSX Mavericks系统上停止了Postgres(使用sudo launchctl unload /Library/LaunchDaemons/org.postgresql.postgres.plist,似乎可以正常关闭),现在我无法重新启动它。

~ $ psql -U postgres
psql: could not connect to server: Connection refused
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)

似乎没有正在运行的Postgres进程...

~ $ ps auxwww | grep postgres
anna            78131   0.0  0.0  2432772    648 s004  S+   12:31pm   0:00.00 grep postgres
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试启动它时,会收到消息“操作正在进行中”。

~ $ sudo launchctl load /Library/LaunchDaemons/org.postgresql.postgres.plist
/Library/LaunchDaemons/org.postgresql.postgres.plist: Operation already in progress
Run Code Online (Sandbox Code Playgroud)

我看到了其他答案,建议我删除该postmaster.pid文件,但看不到此名称的任何文件:

~ $ sudo find / -name postmaster.pid
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
~ $
Run Code Online (Sandbox Code Playgroud)

Postgres是否有启动日志,如果可以,我在哪里可以找到它?

rot*_*ten 1

你应该能够判断是否有东西正在监听 Postgresql 端口

netstat -an | grep -i listen | grep 5432
Run Code Online (Sandbox Code Playgroud)

(如果你的端口是5432)

然后你可以使用以下命令来判断正在听的内容:

lsof -i :5432
Run Code Online (Sandbox Code Playgroud)

如果您将 postgresql 实例设置为侦听的任何端口上都没有侦听任何内容,则它不会运行。(无论出于何种原因)您应该仔细检查 postgresql.conf、pg_hba.conf,并在日志文件中的 pg_log 中查找错误。

如果您正在侦听非标准端口,则可能需要使用“-p”psql 选项来设置端口。如果您正在侦听主机名,而不是本地主机,则可能需要设置“-h”选项。

IE:

psql -U postgres -h 10.1.23.4 -p 12345
Run Code Online (Sandbox Code Playgroud)