我使用以下方法安装了PostgreSQL
sudo apt install libpq-dev postgresql postgresql-contrib
一开始一切都很好,但是我还需要远程连接,
我需要修改:
pg_hba.conf
和postgresql.conf
但是我会在修改之前对其进行备份。
sudo systemctl restart posgresql
有时效果完美
,但是在其他情况下,当我尝试sudo -u postgres psql
时,出现以下错误:
psql:colud无法连接到服务器:没有这样的文件或目录。是 服务器在本地运行并接受Unix域上的连接 套接字“ /var/run/postgresql/.s.PGSQL.5432
这很奇怪,因为我仅更改了pg_hba.conf
中的IP地址以允许远程连接,有时可以正常工作,有时会收到错误。也可以远程停止工作。
我回到备份文件,重新启动服务器(因此文件中的远程文件没有更改),错误仍然存在。
我检查了服务:sudo systemctl status postgresql
活跃且正常工作。
我不知道出了什么问题,因为我希望从备份中恢复到初始文件,然后才能解决该错误。请帮助
我多次发现错误,但就我而言,服务器处于活动状态,甚至还返回到备份状态,无法正常工作。
答案 0 :(得分:1)
我设法通过以下方法解决此问题。
> tail -f /var/log/postgresql/<what-ever-postgresql-log-name>.logs
如果您的日志显示FATAL: could not remove old lock file
,如下所示。然后转到步骤2。
2019-09-06 01:49:13.477 UTC [5439] LOG: database system is shut down
pg_ctl: another server might be running; trying to start server anyway
2019-09-06 01:51:17.668 UTC [1039] FATAL: could not remove old lock file "postmaster.pid": Permission denied
2019-09-06 01:51:17.668 UTC [1039] HINT: The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again.
pg_ctl: could not start server
Examine the log output.
cat / etc / postgresql / * / main / postgresql.conf
确认您的data_directory路径-然后发出以下命令。
rm /var/lib/postgresql/10/main/postmaster.pid
老实说,我仍然在寻找(为什么我们仍需要设置权限)默认情况下已经对postgres用户具有权限的地方。
sudo chmod 765 /var/run/postgresql
sudo chown postgres /var/run/postgresql
sudo service postgresql restart
sudo -u postgres psql
注意:我正在使用Postgresql 10