启动 Postgres 时出错

Error starting Postgres

我在 Postgres 数据库不想启动的实时站点(以及相应的开发站点)上遇到了一个奇怪的错误。突然出现这个问题,不知道是什么原因造成的。

尝试在终端中启动会导致可怕的 'not accepting 5432 connections'

sudo -u postgres psql
psql: 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"?

如果我尝试重新启动 postgres:

service postgresql restart
 * Restarting PostgreSQL 9.1 database server                                                                                                                                                                    * The PostgreSQL server failed to start. Please check the log output:
2015-07-15 13:49:24 EEST LOG:  database system was interrupted; last known up at 2015-07-12 20:02:18 EEST
2015-07-15 13:49:24 EEST FATAL:  could not open file "/etc/ssl/certs/ssl-cert-snakeoil.pem": Permission denied
2015-07-15 13:49:24 EEST LOG:  startup process (PID 11172) exited with exit code 1
2015-07-15 13:49:24 EEST LOG:  aborting startup due to startup process failure

关于接下来要尝试什么的任何想法,或者是什么导致了这种情况?

事实证明这与 fsync permissions bug in an update 有关,当我们的 VPS 提供商需要在另一个问题后重新启动时触发。

文章中列出的步骤解决了问题:

(as root)
# go to PGDATA directory
cd /var/lib/postgresql/9.1/main

# Backup server.crt server.key just to be sure!
cp server.crt server.crt.bk
cp server.key server.key.bk

ls -l server.crt server.key

# confirm both of those files are symbolic links
# to files in /etc/ssl before going further

# remove symlinks to SSL certs
rm server.crt
rm server.key 

# copy the SSL certs to the local directory
cp /etc/ssl/certs/ssl-cert-snakeoil.pem server.crt
cp /etc/ssl/private/ssl-cert-snakeoil.key server.key

# set permissions on ssl certs
# and postgres ownership on everything else
# just in case
chown postgres *
chmod 640 server.crt server.key

service postgresql start

就我而言,一些 ubuntu/postgres 升级将文件的权限更改为 600。

将其更改为 644 解决了问题,我可以启动 postgre 守护进程。

chmod 644 /etc/ssl/certs7ssl-cert-snakeoil.pem

make-ssl-cert generate-default-snakeoil --force-overwrite

当我重写证书后,我开始可以访问 postgresql。 毕竟 - 原因很简单(当你重新加载服务器 Ubuntu 18.04. 在我的例子中)你失去了一些默认设置。当心。 非常感谢@AndrewSavinykh 的帮助。 Дякую теска))).