2013-12-17 116 views
2

我在我的虛擬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

我怎麼樣這應該配置?!

+0

實際上'pg_service.conf'是一個標準的配置文件但對於['libpq'](HTTP://www.postgresql .org/docs/current/static/libpq-pgservice.html)的客戶端。並且對服務器端沒有影響。 –

+0

謝謝 - 我忘記了「服務」並更新了我的問題。 – Tobias

+0

_and我通過註釋掉我的ssh key_來測試它:你將postgres數據庫用戶的**密碼(這是錯誤的原因)與**相關的postgres linux用戶密碼**相混淆爲ssh而不是爲postgresql服務器。 –

回答

4

我終於設法連接作爲分貝用戶tobias(我從來沒有問題,本地連接,與psql)。

# sudo -u postgres psql postgres 
psql (9.1.9) 
Type "help" for help. 

postgres=# \du 
          List of roles 
Role name |     Attributes     | Member of 
-----------+------------------------------------------------+----------- 
postgres | Superuser, Create role, Create DB, Replication | {} 
tobias | Superuser          | {} 

postgres=# ALTER USER tobias WITH PASSWORD 's3cr3t'; 
ALTER ROLE 

這樣做後,我可以連接爲tobias,使用剛剛設置的密碼。 「維護數據庫」碰巧是template1;我沒有試圖改變這一點。

爲了進一步參考 - I在/etc/postgresql/9.1/main/postgresql.conf激活log_connections並觀看日誌:

sudo tail -f /var/log/postgresql/postgresql-9.1-main.log