[英]PG::ConnectionBad Postgres Cluster down
Digitalocean disabled my droplet's internet access. Digitalocean禁用了我的Droplet的Internet访问。 After fixing the error (rollback to older backup) they restored the internet access.
修复错误(还原到较早的备份)后,他们恢复了Internet访问。 But afterwards I constantly get an error when deploying, I can't seem to get my Postgres database up and running.
但是之后,在部署过程中我经常遇到错误,我似乎无法启动并运行我的Postgres数据库。
I'm getting an error each time I try to deploy my application. 每次尝试部署应用程序时,都会收到错误消息。
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
So I used SSH to login to my server and check if my Postgres was actually running with: 因此,我使用SSH登录到我的服务器,并检查我的Postgres是否实际在运行:
pg_lsclusters
Results into: 结果成:
Ver Cluster Port Status Owner Data directory Log file 9.5 main 5432 down postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
Postgres server status Postgres服务器状态
So my Postgres server seems to be down. 因此我的Postgres服务器似乎已关闭。 I tried putting it 'up' again with:
我尝试通过以下方式再次将其“调高”:
pg_ctlcluster 9.5 main start
After doing so I got the error: Insecure directory in $ENV{PATH} while running with -T switch at /usr/bin/pg_ctlcluster line 403.
pg_ctlcluster 9.5 main start
这样做之后,我得到了错误: Insecure directory in $ENV{PATH} while running with -T switch at /usr/bin/pg_ctlcluster line 403.
And /usr/bin/pg_ctlcluster
on line 403 says: 403行上的
/usr/bin/pg_ctlcluster
说:
system 'systemctl', 'is-active', '-q', "postgresql\\@$version-$cluster";
But I'm not to sure what the problem could be here and how I could fix this. 但是我不确定问题可能出在哪里以及如何解决。
I also tried updating the permissions on /bin
to 755 as mentioned here . 我也尝试更新的权限
/bin
提到到755 这里 。 Sadly that did not fix my problem. 不幸的是,这并没有解决我的问题。
I changed the /usr/bin to 755. Now when I try pg_ctlcluster 9.5 main start
, I get this: 我将/ usr / bin更改为755。现在,当我尝试
pg_ctlcluster 9.5 main start
,我得到了:
Job for postgresql@9.5-main.service failed because the control process exited with error code.
postgresql@9.5-main.service的作业失败,因为控制进程退出并显示错误代码。 See "systemctl status postgresql@9.5-main.service" and "journalctl -xe" for details.
有关详细信息,请参见“ systemctl状态postgresql@9.5-main.service”和“ journalctl -xe”。
And inside the systemctl status postgresql@9.5-main.service
: 在
systemctl status postgresql@9.5-main.service
:
postgresql@9.5-main.service - PostgreSQL Cluster 9.5-main
Loaded: loaded (/lib/systemd/system/postgresql@.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2018-01-28 17:32:38 EST; 45s ago
Process: 22473 ExecStart=postgresql@%i --skip-systemctl-redirect %i start (code=exited, status=1/FAILURE)
Jan 28 17:32:08 *url* systemd[1]: Starting PostgreSQL Cluster 9.5-main...
Jan 28 17:32:38 *url* postgresql@9.5-main[22473]: The PostgreSQL server failed to start.
Jan 28 17:32:38 *url* systemd[1]: postgresql@9.5-main.service: Control process exited, code=exited status=1
Jan 28 17:32:38 *url* systemd[1]: Failed to start PostgreSQL Cluster 9.5-main.
Jan 28 17:32:38 *url* systemd[1]: postgresql@9.5-main.service: Unit entered failed state.
Jan 28 17:32:38 *url* systemd[1]: postgresql@9.5-main.service: Failed with result 'exit-code'.
Thanks! 谢谢!
You better not mix systemctl
and pg_ctlcluster
. 您最好不要混合使用
systemctl
和pg_ctlcluster
。 Let systemctl
makes the calls to pg_ctlcluster
with the right user and permissions. 让
systemctl
使用正确的用户和权限调用pg_ctlcluster
。 You should start your postgresql instance with 您应该使用以下命令启动postgresql实例
sudo systemctl start postgresql@9.5-main.service
Also, check the errors in the startup log. 另外,检查启动日志中的错误。 You can post them too, to help you figure out what's going on.
您也可以发布它们,以帮助您了解发生了什么。
Your systemctl status
also outputs that the service is disable, so, when the server reboots, you will have to start the service manually. 您的
systemctl status
还输出该服务已禁用,因此,在服务器重新引导时,您将必须手动启动该服务。 To enable it run: 要启用它,请运行:
sudo systemctl enable postgresql@9.5-main.service
I hope it helps 希望对您有所帮助
It is mainly because /etc/hosts file is somehow changed.I have removed extra space inside /etc/hosts file.Use cat /etc/hosts Add these lines into the file 主要是因为/ etc / hosts文件有所更改。我已经删除了/ etc / hosts文件中的多余空间。使用cat / etc / hosts将这些行添加到文件中
And I have given permission 644 to /etc/hosts file.It is working for me even after the reboot of the system. 而且我已经授予/ etc / hosts文件644的权限。即使重新启动系统,它也对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.