我在我的虛擬Linux機器上有一個postgresql
惡魔,並且剛剛在Windows機器上安裝了pgAdmin III。現在我想配置第一個連接。如何將pgAdmin III(Windows)連接到postgresql(Linux in virtual box)
我做了什麼至今:
- 我編輯
/etc/postgresql/9.1/main/pg_hba.conf
並添加一條線,使妖接受我的Windows機器連接:
host all all 192.168.123.45/32 md5
- 我設置爲系統用戶
postgres
殼密碼(sudo passwd postgres
) - 編輯:這似乎是無關緊要
我複製到/usr/share/postgresql/9.1/pg_service.conf.sample
/etc/postgresql-common/pg_service.conf
和註釋掉樣的服務,讓我
[Postgres的]
DBNAME = Postgres的
用戶= Postgres的 - 編輯:這似乎是無關緊要
我把行成/etc/environment
指向pgservice.conf
文件:
PGSERVICEFILE=/etc/postgresql-common/pg_service.conf
(它的工作;當我重複的PuTTY會話,它有這個變量) - 我重新啓動在每次更改後的數據庫服務器:
sudo /etc/init.d/postgresql restart
- 最後,我restartet Linux機器,
服務器似乎已重啓成功:
[ ok ] Restarting PostgreSQL 9.1 database server: main.
然而,當我嘗試連接到服務,pgAdmin的III給我一個錯誤信息:
錯誤CON找到服務器:找不到服務「postgres」的定義。
dmesg | grep postgres
給了我一個單行:
[ 18.054965] postgres (2242): /proc/2242/oom_adj is deprecated, please use /proc/2242/oom_score_adj instead.
我不知道postgresql
是否使用我pq_service.conf
所有,或任何其他的問題;任何幫助表示讚賞...
編輯: 我原來的問題,「How can I know whether postgresql uses my pg_service.conf file?
」,似乎是在回答 - 它根本沒有。我仍然無法連接;但現在問題不再與錯誤消息匹配。
我從我的「新服務器註冊」數據中刪除了「服務」條目。現在我得到另一個錯誤 - 例如「用戶的密碼認證>> postgres < <失敗」。我很確定密碼是正確的 - 我只是設置了它......我通過從authorized_keys
文件中註釋掉我的ssh密鑰來測試它。
我很高興地與我的ssh密鑰連接,但這似乎也很困難。使用PuTTY,我的密鑰來自於Pageant,而且我沒有任何問題登錄; pgAdmin談到「SSH隧道」,但我通常不需要隧道爲這臺本地機器...
無論如何我試圖創建一個隧道。
- PuTTY會話:
- 源端口爲
5432
- 目的地是
my-vbox.host.name:5432
- 源端口爲
- 在pgAdmin的 「SSH隧道」:使用Identity文件
- 用戶名
postgres
- 隧道主機
localhost
→錯誤:
「SSH error: Could not connect to socket with error code 10051
」 - 隧道主機
localhost:5432
→錯誤:
「SSH error: Unable to resolve host: localhost:5432
」 - 隧道主機
127.0.0.1:5432
→錯誤:
「SSH error: Unable to resolve host: 127.0.0.1:5432
」
我怎麼樣這應該配置?!
實際上'pg_service.conf'是一個標準的配置文件但對於['libpq'](HTTP://www.postgresql .org/docs/current/static/libpq-pgservice.html)的客戶端。並且對服務器端沒有影響。 –
謝謝 - 我忘記了「服務」並更新了我的問題。 – Tobias
_and我通過註釋掉我的ssh key_來測試它:你將postgres數據庫用戶的**密碼(這是錯誤的原因)與**相關的postgres linux用戶密碼**相混淆爲ssh而不是爲postgresql服務器。 –