Postgresql
無法在 postgresql 9.5 中執行 psql
我在 Ubuntu 16.04 LTS 上使用 Postgresql 9.5。我輸入時收到以下錯誤
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"?
在檢查登錄時
/var/log/postgresql/postgresql-9.5-main.log
,我看到錯誤為:2018-11-26 13:17:41 IST
$$ 3508-1 $$致命:無法訪問私鑰文件“/etc/ssl/private/ssl-cert-snakeoil.key”:權限被拒絕
以下是
etc/ssl/private
和ssl-cert-snakeoil.key
文件的權限:vivek@vivek-ThinkPad-E480:~$ ls -l /etc/ssl total 36 drwxr-xr-x 2 root root 20480 Nov 22 13:06 certs -rwxr-xr-x 1 root root 10835 Dec 8 2017 openssl.cnf drwxr--r-- 2 root ssl-cert 4096 Nov 22 13:06 private vivek@vivek-ThinkPad-E480:~$ sudo ls -l /etc/ssl/private total 4 -rw-r----- 1 root ssl-cert 1704 Nov 22 13:06 ssl-cert-snakeoil.key
任何人都可以指導我設置權限的正確方向嗎?
更新 #1:
postgres
使用者也被添加到組ssl-cert
中。vivek@vivek-ThinkPad-E480:~$ getent group ssl-cert ssl-cert:x:112:postgres
**更新 #2:**我發現
server.key
./var/lib/postgresql/9.5/main
“/etc/ssl/private”的權限應該是“drwx—x—”(又名“0710”),這應該是它附帶的權限。不知道改了 您可以使用以下方法恢復它:
sudo chmod 0710 /etc/ssl/private/
儘管也許還有一種方法可以與您的包管理器一起完成。
您不需要“/var/lib/postgresql/9.5/main”中的 server.key 文件,因為 postgresql 被配置為在“/etc/ssl/private/ssl-cert-snakeoil.key”中查找它. 您可以製作或獲取自己的證書並放入“/var/lib/postgresql/9.5/main”,但隨後您必須更改配置以在那裡查找它。
- 查看詳細日誌並將權限更改為 0600。它適用於我
詳細資訊:如果由數據庫使用者擁有,文件必須具有 u=rw (0600) 或更少的權限,如果由 root 擁有,則文件必須具有 u=rw,g=r (0640) 或更少的權限。