我一直在寻找解决方案,找不到合适的解决方案。
我在MacBook中使用brew(brew services list
)安装了postgres,我目前正在使用brew服务运行它(psql
将postgres显示为正在运行的服务)。但是,当我尝试运行mysqldump db_name > backup-file.sql
时,我收到以下错误。
psql:无法连接到服务器:没有这样的文件或目录 服务器在本地运行并接受Unix域上的连接 socket“/tmp/.s.PGSQL.5432”?
任何人都已经解决了类似的问题?
答案 0 :(得分:61)
我遇到了同样的错误,我通过删除进程pid文件修复了它:
rm -f /usr/local/var/postgres/postmaster.pid
答案 1 :(得分:35)
我今天遇到了这个问题。 postgres停止接受连接虽然自制软件认为它正在运行。
为了解决这个问题,我跑了,
brew services restart -vvv postgresql
此命令的输出
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Generated plist for postgresql:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>homebrew.mxcl.postgresql</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/postgresql/bin/postgres</string>
<string>-D</string>
<string>/usr/local/var/postgres</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/usr/local</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/postgres.log</string>
</dict>
</plist>
然后我想,嗯,也许这个日志文件中有一些东西,
tail -n 10 /usr/local/var/log/postgres.log
果然,
[4826] FATAL: lock file "postmaster.pid" already exists
[4826] HINT: Is another postmaster (PID 1489) running in data directory "/usr/local/var/postgres"?
所以,我删除了那个文件
rm /usr/local/var/postgres/postmaster.pid
一切都重新开始了。
答案 2 :(得分:9)
我会在这里结合Wilson和Grasshopper的两个答案。
您可以使用brew services list
检查plist文件中的postgres服务,找到该文件的位置,然后在您喜欢的编辑器中打开它。
您应该会看到StandardErrorPath
的值列为:
<key>StandardErrorPath</key>
<string>/usr/local/var/log/postgres.log</string>
然后你应该使用tail -n 100 /usr/local/var/log/postgres.log
在我的情况下,错误如下:
2017-12-06 11:51:16.078 GMT [85476]致命:锁定文件“postmaster.pid”已存在 2017-12-06 11:51:16.078 GMT [85476]提示:是否有另一位邮政局长(PID 601)在数据目录“/ usr / local / var / postgres”中运行?
这是因为我必须硬关闭我的Mac并且postgres没有机会清理PID文件。只需删除PID文件rm /usr/local/var/postgres/postmaster.pid
并启动postgres brew services start postgresql
警告:除非您确定postgres未运行,否则不要删除此PID文件。您可以通过运行brew services stop postgresql
然后等待brew services list
的结果显示posgres处于停止状态来执行此操作。
答案 3 :(得分:7)
就我而言,postmaster.pid
文件甚至都没有。我可以通过升级postgres使其工作。
brew update
brew upgrade
然后,因为我将主要版本从10升级到了11,所以我还必须运行以下命令:
brew postgresql-upgrade-database
(来源https://github.com/facebook/react-native/issues/18760#issuecomment-410533581)
答案 4 :(得分:5)
问题 - macOS 升级后 Postgres 无法运行
我刚刚升级到最新的 macOS (Big Sur)。
使用 postgresql 的本地实例作为数据库的我的节点应用程序由于此错误而无法启动:Error: connect ECONNREFUSED 127.0.0.1:5432
显然 postgresql 不再在我的机器上正常运行。
运行 brew services list
显示 postgresql 的错误:
Name Status User Plist
postgresql error ***** /Users/*****/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
解决方案 - 升级 Postgres
为了解决这个问题,我使用以下命令升级了 postgresql:
$ brew services stop postgresql
$ brew postgresql-upgrade-database # may need to `rm-rf /usr/local/var/postgres.old` first
$ brew services start postgresql
答案 5 :(得分:3)
我从版本点击安装postgresql93时遇到了同样的错误。
检查brew services list
(~/Library/LaunchAgents/homebrew.mxcl.postgresql93.plist
)输出中指示的.plist文件,我发现以下消息:
致命:数据目录&#34; / usr / local / var / postgres&#34;有团体或世界访问权 详细信息:权限应为u = rwx(0700)。
这让我得到了这个答案:data directory "/usr/local/var/postgres" has wrong ownership
运行sudo chmod -R 700 /usr/local/var/postgres
后,我遇到了另一个错误:
致命:无法打开目录&#34; pg_tblspc&#34;:没有这样的文件或目录
然后导致我:`pg_tblspc` missing after installation of latest version of OS X (Yosemite or El Capitan)
运行mkdir /usr/local/var/postgres/pg_tblspc/
群集成功启动后。
答案 6 :(得分:2)
对我有用的是删除/usr/local/var/postgres/
文件夹,然后再次卸载并安装postgres
答案 7 :(得分:2)
如果您安装了多个版本的postgresql。下面提到的命令将完成删除进程id(pid)并重新启动它的工作。只需确保选择正确的版本即可。
rm -f /usr/local/var/postgresql@9.6/postmaster.pid
brew services restart postgresql@9.6
也请参考Eric Corner的答案,以确认问题是否与日志文件中的“锁定文件postmaster.pid已存在”有关。
答案 8 :(得分:1)
如果您的 postgres.log 文件包含“找不到图像错误”,那么您可能需要重新安装 postgresql:
brew reinstall postgresql
答案 9 :(得分:0)
使用命令
更新 brew postgresql-upgrade-database
如果您遇到以下错误 找不到命令“ brew” ,但可以安装以下命令: sudo apt安装linuxbrew-wrapper
然后使用命令
安装 sudo apt install linuxbrew-wrapper
答案 10 :(得分:0)
就我自己而言,postgres.log
文件包含此HINT: Is another postmaster already running on port 5432? If not, remove socket file "/tmp/.s.PGSQL.5432" and retry.
。删除套接字文件并重新启动后,一切正常。请注意,这是一个隐藏文件,将无法通过窗口浏览器看到。删除应通过命令行完成。
答案 11 :(得分:0)
您可能会看到libssl / libcrypto版本的冲突。
brew services start postgres
日志给了我nada,但手动启动pg_ctl -D /usr/local/var/postgres start
指向:
/.../openssl/lib/libcrypto.1.0.0.dylib中缺少定义_RAND_cleanup
拍摄地点:
brew tap-new $USER/old-openssl
brew extract --version=1.0.2t openssl $USER/old-openssl
brew install openssl@1.0.2t
# and then either brew link openssl@1.0.2t or symlink the required files to current openssl
ln -s /usr/local/Cellar/openssl/openssl@1.0.2t/lib/libcrypto.1.0.0.dylib /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
ln -s /usr/local/Cellar/openssl/openssl@1.0.2t/lib/libssl.1.0.0.dylib /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
答案 12 :(得分:0)
如果所有其他答案都不起作用...
我看到了同样的消息和接受的答案,正在运行
Id = a3e6a543-2aee-4ffe-a36a-a53k95921998, Tag = HttpMultipartParser.MultipartFormDataParser.ParseStreamAsync, Length = 530 bytes
没用。也没有
rm -f /usr/local/var/postgres/postmaster.pid
在我记得我安装了特定版本之后。
我做了一个 rm -f /usr/local/var/postgres@9.6/postmaster.pid
并看到:
cat /usr/local/var/log/postgresql@9.6.log
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 1231) running in data directory "/usr/local/var/postgresql@9.6"?
**思考的脸**
关闭 iOS 模拟器。 Postgres 自行重启。
这是在台式机上,我们昨天断电了,所以根据其他答案,我怀疑根本原因是硬关机而没有给事情清理机会。
答案 13 :(得分:0)
我的问题是到我的数据库的开放连接。