簡體   English   中英

GCP 無法連接到 MongoDB

[英]GCP Can't Connect to MongoDB

這是我第一次嘗試在連接到 MongoDB 時在 Google VM 實例上部署 Node.js 應用程序。

在 MongoDB 中,我已將我的 IP 地址和 VM 實例的 IP 地址列入白名單。 當我使用 Google Cloud Shell 啟動我的服務器時,我收到以下錯誤:

op.cb(new error_1.MongoNetworkError(`connection ${this.id} to ${this.address} closed`));
      ^
MongoNetworkError: connection 1 to 34.71.95.215:27017 closed

我在端口 8080 上連接。外部 IP 列在我的 GCP 實例頁面上,當我 ping 它時,它已啟動。 IP:34.68.254.120

當我在 Mongodb 中將 0.0.0.0/0 列入白名單時,代碼運行成功,我可以通過 GCP 預覽我的應用程序。

我從頭開始創建了一個新實例,它也因同樣的錯誤而崩潰。

ETA:在查看錯誤消息周圍的源代碼時: ...\node_modules\mongoose\node_modules\mongodb\lib\cmap\connection.js 它看起來像一個關閉的連接。 上面的錯誤消息吐出了 IP 地址作為我的 VM 所在的愛荷華州谷歌數據中心。

我不知道這是什么意思,但如果你知道,請告訴我。

ETA2:我有兩個問題,它們可能是相關的。 首先是我的 VM 服務器無法連接到 MongoDB。這應該很簡單——將我的 VM 服務器的外部 IP 地址列入白名單。 它不起作用(我必須打開 MongoDB 到 0.0.0.0/0 才能連接)。

第二個是我無法通過外部IP地址連接到我的服務器,無論MongoDB是否連接。 它“拒絕連接”。 不過,我可以對正在運行的服務器進行 web 預覽。

似乎兩者可能以某種方式聯系在一起。 我重新啟動了我的虛擬機,但沒有解決任何問題。 我在MongoDB中將報錯信息IP地址加入了白名單,但是沒有用。

ETA3:好的,看來我已經解決了白名單到 MongoDB 的問題。 通過Cloud Shell,我問我的VM IP是什么。 它不同於 GCP 告訴我的是外部 IP。通過將這個 IP 添加到白名單,我可以在 GCP VM 和 MongoDB 之間建立連接。哇。 不知道為什么。

通過我的瀏覽器 VM 的外部 IP 地址仍然給我一個無法連接的消息,當我使用通過雲 Shell 找到的新 VM IP 地址時,它給我一個“響應時間太長”的消息。

所以我覺得我有進步。 剩下的問題是通過 Chrome 訪問我的服務器。

關於如何進一步調查該問題的任何建議? 我走投無路了。 鑒於我缺乏經驗,我相信問題可能很簡單。

謝謝!

由朋友解決的問題,供以后遇到此問題的任何人使用。

我使用 Cloud Shell 設置了我的 GCP VM。我通過 Cloud Shell 復制我的存儲庫來存放我的代碼。事實證明,這更像是與我的 VM 的虛擬接口,並且文件實際上並不在我的 VM 上。 我需要 go 到 SSH,在那里克隆我的存儲庫,並通過 SSH 運行我的服務器。雲 Shell 導致了問題。

暫無
暫無

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

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