2013-04-24 34 views
5

我按照給定的說明安裝PostgreSQL的:http://xadmin.info/?p=284問題而連接PSQL

# pg_ctl -D /var/lib/pgsql/data -l pglog.log start 
server starting 
[email protected]:~> psql 
psql: could not connect to server: No such file or directory 
    Is the server running locally and accepting 
    connections on 
Unix domain socket "/tmp/.s.PGSQL.5432"? 

我沒有得到,爲什麼我會收到這個錯誤時,服務器已啓動...有人可以請幫幫我。

我pglog.log文件顯示以下的輸出:

2013-02-06 19:43:39 GMT FATAL: lock file "postmaster.pid" already exists 
2013-02-06 19:43:39 GMT HINT: Is another postmaster (PID 23971) running in data directory "/var/lib/pgsql/data"? 
2013-02-06 19:44:02 GMT FATAL: lock file "postmaster.pid" already exists 
2013-02-06 19:44:02 GMT HINT: Is another postmaster (PID 23971) running in data directory "/var/lib/pgsql/data"? 
2013-04-24 12:43:29 GMT FATAL: data directory "/var/lib/pgsql/data" has group or world access 
2013-04-24 12:43:29 GMT DETAIL: Permissions should be u=rwx (0700). 
2013-04-24 12:44:07 GMT FATAL: data directory "/var/lib/pgsql/data" has group or world access 
2013-04-24 12:44:07 GMT DETAIL: Permissions should be u=rwx (0700). 
2013-04-24 12:57:02 GMT FATAL: data directory "/var/lib/pgsql/data" has group or world access 
2013-04-24 12:57:02 GMT DETAIL: Permissions should be u=rwx (0700). 
2013-04-24 12:57:40 GMT FATAL: data directory "/var/lib/pgsql/data" has group or world access 
2013-04-24 12:57:40 GMT DETAIL: Permissions should be u=rwx (0700). 

PS -ef | grep的Postgres的

root  21659 21591 0 19:14 pts/0 00:00:00 grep --color=auto postgres 

回答

1

檢查在pglog.log文件,以確保服務器沒有真正開始沒有錯誤。鑑於這個錯誤,它似乎沒有正確啓動。

+0

我已經發布我pglog.log文件的內容。希望這將有助於你進一步幫助我 – user1778824 2013-04-24 13:10:23

+0

它列出了許多有關權限的致命錯誤,所以我會首先檢查並確保單獨的Postgres進程尚未運行,這些日誌也記錄在案。 – 2013-04-24 13:11:38

+0

如何檢查停止單獨的postgres進程 – user1778824 2013-04-24 13:15:04

1

您可能沒有將服務器配置爲將unix域套接字置於「/ tmp」中。它可能位於「/ var/run/pgsql」之類的地方,但請參閱您的postgresql.conf文件以查看具體內容。如果這不是問題

psql -h /path/we/want ... 

,檢查的端口號:

然後,您可以指定該目錄作爲命令行「主機」。

不知道爲什麼/你的psql客戶端和postgresql服務器有不同的默認路徑,但我從來沒有聽說過你從網站獲得指令,所以我不知道它們是多麼有用。

+0

使用psql -h localhost。我得到: psql:無法連接到服務器:連接被拒絕 \t服務器是否運行在主機「localhost」(:: 1)上並接受 \t端口5432上的TCP/IP連接? 無法連接到服務器:連接被拒絕 \t服務器在主機「本地主機」(127.0.0.1)上運行並且接受 \t端口5432上的TCP/IP連接? – user1778824 2013-04-24 13:13:39

+0

感謝您的幫助。希望上面的命令將幫助你進一步幫助我 – user1778824 2013-04-24 13:14:15

+0

不需要。因爲你已經通過localhost從域套接字切換到了tcp/ip。喝杯咖啡,找到你的postgresql.conf文件,並通讀它和聯機手冊的配置部分。 – 2013-04-24 13:20:15

13

的權限和所有權上/var/lib/pgsql/data應該是:

# ll -d /var/lib/pgsql/data 
drwx------. 15 postgres postgres 4096 Apr 24 10:27 /var/lib/pgsql/data 

如果他們不這樣做的根:

# chmod -R 700 /var/lib/pgsql/data 
# chown -R postgres /var/lib/pgsql/data 
+0

非常感謝您的回覆。但即使更改權限和所有權,它也給了我相同的錯誤..psql:無法連接到服務器:沒有這樣的文件或目錄 \t服務器在Unix域套接字「/ tmp /上在本地運行並接受 \t連接。 s.PGSQL.5432" ? – user1778824 2013-04-24 16:37:35

+0

Postgres的是工作的罰款之前,我改變了pg_hba.conf文件到:#TYPE數據庫用戶地址的方法 #「本土」是Unix域套接字連接只能 當地所有所有信託 #IPv4的本地連接:主機 所有一切127.0 .0.1/32信任 #IPv6本地連接: 主機全部全部:: 1/128信任 – user1778824 2013-04-24 16:39:24

+0

我嘗試將以上更改從信任恢復到ident和peer..however我的錯誤仍然存​​在 – user1778824 2013-04-24 16:40:29