iT邦幫忙

0

遠端連接Postgresql

  • 分享至 

  • xImage

各位大神好,
小弟現在在建置專題要使用的資料庫,目前選擇使用Postgresql。
我有一個問題尋找網上資源挺久都沒有完全能理解。

我們組打算在某一個人的本機上建立postgre server,然後另外的組員使用遠端的方式連接
我目前有將

  1. pg_hba.conf 文件改成允許任何ip位置的主機連上資料庫(如圖
    https://ithelp.ithome.com.tw/upload/images/20230820/20161929Vl7GOqZNyi.png

  2. postgresql.conf
    #listen_addresses = ‘localhost’ 改成 listen_addresses = ‘*’

更改完上述的設定後,目前找到的方式是用下面的語法讓組員遠端連接
psql -h host -d database -U user -W
關於這個host該放多少我有點不太確定,不知道該去哪裡找到這個ip該放什麼
我目前是在Mac terminal 輸入$ ipconfig getifaddr en0查詢到我本機的ip位址,
不知道是不是用此作為host處該填寫的資料
另外關於我該如何設定才能允許讓其他組員連接我創建的postgre server,若有誤也麻煩指導...

看更多先前的討論...收起先前的討論...
DennisLu iT邦研究生 1 級 ‧ 2023-08-21 09:36:04 檢舉
pg_hba.conf 不是即時改即時套用的,你有執行reload pg_hba.conf或重啟資料庫嗎?

host 就是IP Address
你的組員是同網段或同一個區域網路下嗎?
假設你組員要在任何一個的網路都能連的話,
你必須要是有實體網路IP並可以控制port的管理,才能讓組員使用。
另外留意一下你的作業系統的防火牆有沒有開TCP 5432 port(pg的預設port)

不管是直接開放還是另外架設VPN撥入再連。
否則你應該只能替每個組員開虛擬機,讓組員利用teamviewer或anydesk連入各自的開發機。

假設有lab文件或程式要跑,
你可以跟組員使用公開的github做版本控制,在家裡也能編輯,
再push上平台,最後回到正式開發環境pull最新版本試跑結果也行。
就免除版本不一致或是要傳版本包的問題。
obarisk iT邦研究生 2 級 ‧ 2023-08-21 09:37:38 檢舉
在雲上開一個 postgres,比如 google cloud sql (誤)。反正只是專題要用的,專題結束時記得刪掉就可以了...
我是有重啟資料庫

你必須要是有實體網路IP並可以控制port的管理,才能讓組員使用。
另外留意一下你的作業系統的防火牆有沒有開TCP 5432 port(pg的預設port)
這兩句我不是很懂,我知道pg的預設port是5432這樣我有需要去更動什麼嗎
google cloud sql是我們這個方式失敗後的備案,想請問在雲上開一個postgres過程會有很多東西需要設定嗎
demo=# SELECT inet_server_addr(), inet_server_port();
inet_server_addr | inet_server_port
------------------+------------------
|
(1 row)

也想請問為什麼我沒辦法抓到這兩個值
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2023-08-20 07:30:17

我們組打算在某一個人的本機上建立postgre server,然後另外的組員使用遠端的方式連接

host 要放 postgre server 所在那部電腦的 ip 位址

看更多先前的回應...收起先前的回應...

所以若是我在我的電腦上建postgre server的
是放我電腦的ip位址沒錯嗎。

但我有一個疑問就是postgre應該要在某個地方有記錄以上這件事情吧,否則怎麼知道是在誰電腦上建伺服器的,是否有哪個文件可以看到

如果 postgresql 安裝在 192.168.1.123 那部電腦
那麼其他人就是用以下指令去連接
psql -h 192.168.1.123 -d maindb -U user01 -W

obarisk iT邦研究生 2 級 ‧ 2023-08-21 09:36:28 檢舉

ip(host) 不是 postgres 要記的
除非你啟動 postgres 的時候要強制只聽(listen)在某個 ip 上
通常都是聽 0.0.0.0 或是 ::0 吧

好的 感謝你們的幫助!

https://ithelp.ithome.com.tw/upload/images/20230821/20161929ssyiVqp2ga.png

也想請問為什麼我沒辦法抓到這兩個值

我要發表回答

立即登入回答