簡體   English   中英

如何將pgAdmin III(Windows)連接到postgresql(虛擬框中的Linux)

[英]How to connect pgAdmin III (Windows) to postgresql (Linux in virtual box)

我的虛擬Linux機器上有一個postgresql惡魔,並且剛在Windows機器上安裝了pgAdmin III。 現在,我想配置第一個連接。

到目前為止,我做了什么:

  • 我編輯了/etc/postgresql/9.1/main/pg_hba.conf並添加了一行內容,使該惡魔接受來自Windows計算機的連接:
    host all all 192.168.123.45/32 md5
  • 我為系統用戶postgres設置了一個shell密碼( 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
  • 最后,我重新啟動Linux機器,

服務器似乎已成功重新啟動:

[ ok ] Restarting PostgreSQL 9.1 database server: main.

但是,當我嘗試連接到服務時,pgAdmin III給我一條錯誤消息:
連接服務器時出錯:找不到服務“ postgres”的定義。

dmesg | grep 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 <<失敗的密碼驗證”。 我確信密碼正確-我只是把它...我注釋掉從我的SSH密鑰測試它authorized_keys文件。

我很樂意用ssh鍵連接,但這似乎也很困難。 使用PuTTY,我的密鑰是從Pageant取得的,並且我登錄時沒有任何問題。 pgAdmin談論“ SSH隧道”,但是我通常不需要此本地計算機的隧道...

我還是試圖創建一個隧道。

  • 膩子會議:
    • 源端口是5432
    • 目的地是my-vbox.host.name:5432
  • 在pgAdmin中,“ SSH隧道”:
    • 用戶名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

應該怎么配置呢?!

我最終設法以db用戶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 我沒有嘗試改變這一點。

供進一步參考-我在/etc/postgresql/9.1/main/postgresql.conf激活了log_connections並觀看了日志:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM