启动 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 的帮助。 Дякую теска))).
我在 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 的帮助。 Дякую теска))).