Thi*_*ent 48 ruby postgresql ruby-on-rails ruby-on-rails-3 ruby-on-rails-4
在此之前,请注意我在Stack Overflow和网络上的文章中发现了几个类似的问题,但这些都没有帮助我解决我的问题:
现在,问题在于:
master和一个mvp分支机构.git用Homebrew(Mac)更新了我的版本.现在,当我尝试在本地启动应用程序时,出现以下错误:
PG::ConnectionBad at /
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)
我试图多次重启计算机.
我还检查了以下内容/usr/local/var/postgres:
PG_VERSION pg_dynshmem pg_multixact pg_snapshots pg_tblspc postgresql.conf
base pg_hba.conf pg_notify pg_stat pg_twophase postmaster.opts
global pg_ident.conf pg_replslot pg_stat_tmp pg_xlog server.log
pg_clog pg_logical pg_serial pg_subtrans postgresql.auto.conf
Run Code Online (Sandbox Code Playgroud)
如您所见,那里没有postmaster.pid文件.
知道如何解决这个问题吗?
小智 75
跑 postgres -D /usr/local/var/postgres,你应该看到类似的东西:
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 379) running in data directory "/usr/local/var/postgres"?
Run Code Online (Sandbox Code Playgroud)
然后kill -9 PID在HINT中运行
你应该好好去.
Gra*_*ick 38
你很可能没电了,你的postgresql服务器没有正确关机.
最简单的解决方法是下载官方postgresql应用程序并启动它:它将强制服务器启动(http://postgresapp.com/)
小智 30
很可能是因为您的系统意外关闭
尝试
postgres -D /usr/local/var/postgres
Run Code Online (Sandbox Code Playgroud)
你可能会看到
Run Code Online (Sandbox Code Playgroud)FATAL: lock file "postmaster.pid" already exists HINT: Is another postmaster (PID 449) running in data directory "/usr/local/var/postgres"?
然后试试
kill -9 PID
Run Code Online (Sandbox Code Playgroud)
例
kill -9 419
Run Code Online (Sandbox Code Playgroud)
它应该正常开始postgres
小智 12
它可能就像postgresql服务失败一样简单.试试跑步:
sudo service postgresql start
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.
Tan*_*Tan 11
这适用于我的情况:
brew uninstall postgresql
rm -fr /usr/local/var/postgres/
brew install postgresql
Run Code Online (Sandbox Code Playgroud)
就我而言,PostgreSQL 从版本更新13.4到14后台,因此它通过以下方式修复:
brew postgresql-upgrade-database
Run Code Online (Sandbox Code Playgroud)
在其他情况下,问题通过以下方式解决:
rm /usr/local/var/postgres/postmaster.pid
Run Code Online (Sandbox Code Playgroud)
或者
rm /opt/homebrew/var/postgres/postmaster.pid
Run Code Online (Sandbox Code Playgroud)
或按版本(例如postgresql@14)
rm /opt/homebrew/var/postgresql@14/postmaster.pid
Run Code Online (Sandbox Code Playgroud)
重新启动服务postgresql:
brew services restart postgresql
Run Code Online (Sandbox Code Playgroud)
附:
你如何理解问题所在?
首先查看哪些服务未正确启动:
brew services list
Run Code Online (Sandbox Code Playgroud)
对于第二个显示文件postgres.log,错误将在哪里:
tail -f /usr/local/var/log/postgres.log
Run Code Online (Sandbox Code Playgroud)
或者
tail -f /opt/homebrew/var/log/postgres*
Run Code Online (Sandbox Code Playgroud)
所以通过这个错误的文本找到答案
我在运行postgresql(mac)的Ruby on Rails应用程序中遇到了几乎相同的错误。这为我工作:
brew services restart postgresql
Run Code Online (Sandbox Code Playgroud)
这可能是由于意外关闭而未删除为postgress创建的pid文件。因此,要解决此问题,请删除此pid文件。
找到postgres数据目录。在使用自制软件的MAC上/usr/local/var/postgres/,可能在其他系统上/usr/var/postgres/
删除PID文件
rm postmaster.pid
重新启动后退。在Mac上,
brew服务重新启动postgresql
步骤1:
cd /etc/postgresql/12/main/
Run Code Online (Sandbox Code Playgroud)
打开名为postgresql.conf
sudo nano postgresql.conf
Run Code Online (Sandbox Code Playgroud)
将此行添加到该文件中
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
然后打开名为pg_hba.conf
sudo nano pg_hba.conf
Run Code Online (Sandbox Code Playgroud)
并将此行添加到该文件中
host all all 0.0.0.0/0 md5
Run Code Online (Sandbox Code Playgroud)
它允许使用加密密码的所有用户访问所有数据库
重新启动你的服务器
sudo /etc/init.d/postgresql restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84475 次 |
| 最近记录: |