簡體   English   中英

NodeJS 無法連接到服務器 ECONNREFUSED 上的 MongoDB

[英]NodeJS cannot connect to MongoDB on server ECONNREFUSED

我有一個基本腳本,用於測試連接到數據庫。

當我嘗試使用node Connection.js運行腳本時,腳本運行,但我沒有在控制台中收到successfully connected to the database的響應,並且我沒有收到任何錯誤。 看起來腳本運行但沒有任何反應。

在 VPS 上,我使用的是 Ubuntu 18.04。 我允許來自本地計算機的 IP 地址和端口。

任何想法有什么問題,我試圖找到與這個主題相關的任何東西,但沒有成功

連接.js

    const mongoose = require('mongoose');
var express = require('express');
const router = express.Router();

// this is our MongoDB database
const dbRoute =
    'mongodb://username:password@ip.adress:22/CryptoCurrencies';

mongoose.Promise = global.Promise;

// connects our back end code with the database
mongoose.connect(dbRoute, {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

let db = mongoose.connection;

db.once('open', () => console.log('connected to the database'));

編輯1

我編輯了代碼,我 100% 確定我允許在我的 ubuntu 服務器port 22上,但我仍然無法使用 Node 連接到我的 VPS

我收到此錯誤 - (node:10115) UnhandledPromiseRejectionWarning: MongooseServerSelectionError: connect ECONNREFUSED

關於如何解決這個問題的任何想法? 用戶名和密碼正確,DB名也正確,ip地址和端口也正確。 目前我完全不明白出了什么問題。 我檢查了大量資源來解決這個問題,然后將我的 NodeJS 腳本從本地機器連接到 VPS 服務器。

我有點確定您的 VPS 必須將端口 22 綁定到 openssh-server ...您確定您已經能夠正確啟動 mongod 並且它正在偵聽端口 22?

順便說一句,1024 以下的所有服務都是標准化的,您應該始終嘗試使用 1024 以上的端口。

你能和我們分享一下你的mongod的配置嗎?

服務器上的配置似乎存在一些問題。 請通過這些檢查清單 go 解決問題。

  • MongoDb 默認運行在端口號 27017 上,端口號 22 為 SSH 保留,請確保您連接到正確的端口號。
  • 如果您通過網絡連接到服務器,請確保您的 MongoDB 服務器實例正在偵聽所有網絡接口,IP 地址。 檢查您的 mongod.conf(或 mongodb.conf)文件( bind_ip = 127.0.0.1僅用於本地, bind_ip = 0.0.0.0用於偵聽來自所有網絡接口的流量。)了解更多詳細信息。
  • 如果您通過 SSH 連接,則需要 ubuntu 操作系統上的用戶名和密碼,並直接與 mongodb 連接需要在 mongo 服務器實例上定義的用戶名密碼。
  • 請檢查您的 mongo 實例 mongod.conf(或 mongodb.conf)文件是否啟用了授權設置。
  • 請確保您創建的用戶有權訪問數據庫(您要連接的CryptoCurrencies

查看此鏈接,了解如何在 MongoDB 服務器實例https://medium.com/mongoaudit/how-to-enable-authentication-on-mongodb-b9e8a924efac上配置身份驗證

暫無
暫無

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

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