簡體   English   中英

Win7連接Linux VirtualBox中的PostgreSql數據庫

[英]Connect to PostgreSql database in Linux VirtualBox from Win7

正如標題中所說,我試圖從 Win7 主機訪問 Linux Centos 5.8 中建立的 Postgres 9.3,它位於同一台機器上的 VirtualBox 中。 我正在嘗試從 PGAdmin 訪問它,當我從 Win7 服務啟動 Postgre 時一切正常,因此 PGAdmin 配置良好。

我嘗試了什么? 我已經閱讀了很多關於這個主題的文章,甚至在這個論壇上提出了一些問題,但沒有任何效果。 我有:

  1. 在 VirtualBox GUI 中切換到 NAT 並轉發端口 5432
  2. 在 postgresql.conf 文件中設置 listenadresses = '*'
  3. 將 host all all all 10.0.2.1/24 md5 行放在 pg_hba.conf 文件中
  4. win7防火牆設置中加入5432端口出入規則
  5. 使用 #service iptables stop 禁用 linux 防火牆

只是提一下。 當服務在虛擬linux啟動時,我可以從linux訪問,所以服務正常啟動。 問題是 windows 沒有看到該服務。 當服務從 linux 啟動時,我可以在 Win 中啟動相同的服務,反之亦然,盡管端口 5432 應該被占用。

對我來說最可疑的部分是第 3) 點,因為我不確定我是否已將正確的地址放在規則中。 根據 my.network,該地址因文章而異,如果有人能向我解釋如何確定將哪個地址(或范圍)放在那里,我將不勝感激。 或者如果可能的話,一些其他的建議。 謝謝。

解決了。

更換:

“主機全部10.0.2.1/24 md5”與“host all all 0.0.0.0/0 trust”解決了它。

Filip 的解決方案有效,但您可以進一步調整它。
首先,在 VM 中啟用 Adapter 2 並將其設置為 Host-only Adapter:

在此處輸入圖像描述

第二個 go 到你的主機,找到它的 ip 地址。
這可以通過在您的 windows 主機上運行 ipconfig 來找到。

現在您需要編輯 VMBox 中的兩個文件。

首先是 postgresql.conf

sudo nano /etc/postgresql/<version>/main/postgresql.conf

並添加以下行:

listen_addresses = '*'

保存然后編輯 pg_hba.conf

sudo nano /etc/postgresql/<version>/main/pg_hba.conf

在這里你需要添加你的主機 ip(在我的例子中是 192.168.56.1:

host    all             all             192.168.56.1/0          trust

保存重啟 postgresql

sudo /etc/init.d/postgresql restart

現在您可以使用 pgadmin 連接到 vm postgresql。

方便!

在我的情況下, pg_hba.conf下行添加到pg_hba.conf就足夠了:

host    all    all    10.0.0.0/16    md5

然后重啟:

sudo /etc/init.d/postgresql restart

暫無
暫無

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

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