lea*_*oso 101 postgresql macos
不太确定是什么原因造成的,但很可能是在连接到 PostgreSQL 数据库的 Rails 服务器关闭时退出终端(我知道这不是一个好的做法,但吸取了教训!)
我已经尝试过以下操作:
brew services restart postgresqlcd Library/Application\ Support/Postgres终端时告诉我 Postgres 文件夹不存在,所以我已经迷路了。虽然我有一种感觉,删除 postmaster.pid 确实可以解决我的问题。任何帮助,将不胜感激!lea*_*oso 71
如果您更喜欢使用 v13.3,下面是解决方法,如果您使用的是 14.2,您可以简单地更改 postgresql 正在侦听的端口。在这里阅读他们的相关文档。
请注意,此解决方案适用于我的设置(请查看原始帖子以了解我的设置详细信息,即操作系统以及我如何使用它来安装 Postgres)
VSCode
sudo code . /usr/local/var/postgres/postgresql.conf
Run Code Online (Sandbox Code Playgroud)
维姆
sudo vi /usr/local/var/postgres/postgresql.conf
Run Code Online (Sandbox Code Playgroud)
v13.3解决方案
看起来升级确实搞乱了我的 postgres,因为根据 Nagev 的回答,它正在监听端口 5433 而不是 5432。我降级到 v13.3 来解决这个问题。
brew uninstall postgresql
brew install postgresql@13
brew services start postgresql@13
brew link postgresql@13 --force
Run Code Online (Sandbox Code Playgroud)
小智 67
如果您使用的是 macOS 而不是 M1
rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql
Run Code Online (Sandbox Code Playgroud)
细节
brew info postgresql获取执行命令/usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgresFATAL: lock file "postmaster.pid" already exists/usr/local/var/postgres目录,删除postmaster.pid文件Kho*_*Ngo 58
蒙特利或索诺玛 MacOS M1/M2 的解决方案
rm /opt/homebrew/var/postgres/postmaster.pid
brew services restart postgresql
Run Code Online (Sandbox Code Playgroud)
Zak*_*kir 24
首先检查Postgress是否正在运行
pgrep -l postgres
Run Code Online (Sandbox Code Playgroud)
如果它没有给您任何结果,那么让我们尝试使用brew 服务启动它。
brew services start postgresql
pgrep -l postgres
Run Code Online (Sandbox Code Playgroud)
还不跑?检查日志
tail /usr/local/var/log/postgres.log
Run Code Online (Sandbox Code Playgroud)
您可能会看到有关名为 postmaster.pid 的文件的错误:
FATAL: lock file "postmaster.pid" already exists
Run Code Online (Sandbox Code Playgroud)
这表明由于多种原因,Postgres 并未完全关闭。删除过时的 PID 锁,然后再次启动服务器
rm /usr/local/var/postgres/postmaster.pid
brew services start postgresql
pgrep -l postgres
Run Code Online (Sandbox Code Playgroud)
如果您通过 home-brew 安装 Postgress,则首先创建 postgres 用户。
/opt/homebrew/Cellar/postgresql@14/14.7/bin/createuser -s postgres
Run Code Online (Sandbox Code Playgroud)
现在您可以通过以下命令登录它:
psql -U postgres
Run Code Online (Sandbox Code Playgroud)
小智 18
如果您使用 MacOS Homebrew,请按照https://wiki.postgresql.org/wiki/Homebrew中的说明进行操作
简而言之,尝试
psql postgres
小智 14
对于配备 M1 的 Mac,请使用以下命令:
brew services stop postgresql
rm /opt/homebrew/var/postgresql@14/postmaster.pid
brew services start postgresql
Run Code Online (Sandbox Code Playgroud)
在 Mac OSX M2上工作并postgresql@15使用安装brew,
对我有用的安装步骤:
brew doctor
brew cleanup
brew update
brew install postgresql@15
Run Code Online (Sandbox Code Playgroud)
检查此命令日志中的安装路径 brew install postgresql@15,它可能看起来像/opt/homebrew/opt/postgresql@15/bin
添加到环境:
vim ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
将此行附加到文件末尾
export PATH=$PATH:/opt/homebrew/opt/postgresql@15/bin
Run Code Online (Sandbox Code Playgroud)
检查此命令brew services start postgresql@15(显示已启动)并验证其状态,有时它会说它正在运行,但在下面的命令中,它会显示错误。
brew services list
Run Code Online (Sandbox Code Playgroud)
如果状态为运行
Name Status User File
postgresql@15 started username ~/Library/LaunchAgents/homebrew.mxcl.postgresql@15.plist
brew link postgresql@15 --force
cd /opt/homebrew/var/postgresql@15
sudo vi postgresql.conf
Run Code Online (Sandbox Code Playgroud)
取消注释或添加postgresql.conf
port = 5432 # (change requires restart)
Run Code Online (Sandbox Code Playgroud)
(来自:https ://stackoverflow.com/a/71792068/7276869 )
rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql
Run Code Online (Sandbox Code Playgroud)
尝试开始:
psql -d postgres -U username
postgres=# \l
Run Code Online (Sandbox Code Playgroud)
(您已进入 postgres shell!)
| 归档时间: |
|
| 查看次数: |
175709 次 |
| 最近记录: |