programing

Mongo Network Error: 첫 번째 연결 시 [localhost:27017]서버에 연결하지 못했습니다[Mongo Network Error:connect ECONNREFUSED 127.0.1:27017]

javaba 2023. 2. 11. 22:42
반응형

Mongo Network Error: 첫 번째 연결 시 [localhost:27017]서버에 연결하지 못했습니다[Mongo Network Error:connect ECONNREFUSED 127.0.1:27017]

저는 nodeJS에 처음이고, 유튜브의 예고편을 보고 배우기 시작했는데, mongodb의 경우 연결 기능을 추가하기 전까지는 모든 것이 잘 진행되었습니다.

mongo.connect("mongodb://localhost:27017/mydb")

cmd(node start-app)에서 코드를 실행하면 다음 오류가 나타납니다.

MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]

내가 어느 단계를 놓쳤는지 누가 설명해 줄 수 있나요?

var express = require("express");
var MongoClient = require('mongodb');
var url = "mongodb://localhost:27017/mydb";
var webService = require("./webService");
var server = express();

MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    console.log("Database created!");
    db.close();
});

server.use(express.urlencoded({ extended: true }));

server.set('views', __dirname);

server.get('/', function (request, response) {
    response.sendFile(__dirname + '/MainPage.html');
});

server.get('/Sign', function (request, response) {
    response.render(__dirname + '/Sign.ejs');
});

server.post("/signUp", webService.signUp);

server.post("/createUser", webService.createUser);

server.listen(5500);

하셔야 합니다.MongoDB먼저 시스템 내의 데이터베이스 서버를 시작하고 시작합니다.

하여 설치하다MongoDB

https://docs.mongodb.com/manual/installation/

MongoDB 를 인스톨 하고 있는 경우는, 서버가 어느 상태(start/stop)인지 확인합니다.mongo 쉘 클라이언트를 통해 연결을 시도합니다.

이들 중 상당수는 이를 추가하지 않고 있으며, 특히 AWS EC2 Instance에서 같은 문제가 발생하여 다른 솔루션을 시도했습니다.해결 방법: 코드 내의 데이터베이스 URL 중 하나에 이 파라미터 'authSource'가 누락되어 있습니다.이 파라미터는 저에게 도움이 됩니다.

mongodb://myUserName:MyPassword@ElasticIP:27017/databaseName?authSource=admin

나는 같은 문제에 직면했지만 많은 연구 끝에 직면했다.이것이 문제의 원인임을 알게 되었으므로 단말기에서 이 명령을 실행합니다.

sudo 서비스 mongod 시작

단말기에서 mongo를 실행합니다.

구글이 생각해낸 모든 솔루션을 스택 오버플로에서 시도해 본 결과, 나의 특별한 문제가 무엇인지 알게 되었습니다.가상 상자에서 로컬 호스트에 액세스할 수 있도록 호스트 파일을 편집한 오래입니다.

이 엔트리를 삭제하면 위의 솔루션에서 제공된 링크에서 mongoDB를 올바르게 설치하고 올바른 약속 처리 코드를 포함하여 문제가 해결되었습니다.

mongoose.connect('mongodb://localhost/testdb').then(() => {
console.log("Connected to Database");
}).catch((err) => {
    console.log("Not Connected to Database ERROR! ", err);
});

위의 @CoryM의 답변 뒤에 있는 논리에 따라 주세요.

구글이 생각해낸 모든 솔루션을 스택 오버플로에서 시도해 본 결과, 나의 특별한 문제가 무엇인지 알게 되었습니다.가상 상자에서 로컬 호스트에 액세스할 수 있도록 호스트 파일을 편집한 지 오래입니다.

이 엔트리를 삭제하면 해결...

Python Machine Learning 。그래서 아직 필요해서 지우는 대신127.0.0.1localhost가 있었어요

mongoose.connect('mongodb://127.0.0.1/testdb')

IP 주소가 변경되었을 가능성이 있습니다.

최근에 모뎀을 다시 시작한 경우, Atlas에 화이트리스트에 있는 IP가 변경됩니다.

따라서 Atlas로 돌아가서 보안>의 화이트리스트에 새 IP 주소를 추가해야 합니다.네트워크 액세스

이런 생각이 들었고, 인터넷 접속 장애 때문이라는 것을 알게 되었습니다.보안상의 이유로 여러 웹사이트가 차단되어 있는 저희 집에서 공용 와이파이를 사용하면 몽고는 접속을 거부합니다.하지만 내 모바일 데이터를 사용하면 데이터베이스에 연결할 수 있습니다.

mongoDB 서버가 이미 설치되어 있고 리모트호스트에서 접속할 수 없는 경우는, 다음의 순서에 따릅니다.

하여 Mongodb 설정 .Mongodb 설정 은 "Mongodb"에 ./etc/mongod.conf 쓰세요.bindIp / "IP" /0.0.0.0몽고답

    sudo vi /etc/mongod.conf
  • 파일에는 다음과 같은 내용이 포함되어 있어야 합니다.

      systemLog:
          destination: file
          path: "/var/log/mongodb/mongod.log"
          logAppend: true
      storage:
          journal:
              enabled: true
      processManagement:
          fork: true
      net:
          bindIp: 127.0.0.1  // change here to 0.0.0.0
          port: 27017
      setParameter:
          enableLocalhostAuthBypass: false
    
  • [ ] 를 bindIp다시

      sudo service mongod restart
    
  • 이것으로 리모트 서버에서 mongodb 서버에 접속할 수 있게 됩니다.

mongoose의 메이저버전을 업그레이드하여 이 문제를 해결했습니다.

   "dependencies": {
-    "mongoose": "^5.4.13",
+    "mongoose": "^6.2.4",
   }

mongo db와 mongoose처럼 클라이언트를 설치하는 것처럼 모든 것이 설정되어 있다면 기본 폴더의 터미널에서 mongod를 실행합니다.명령을 실행한 후 작업 중인 프로젝트 파일을 실행하면 오류가 나타나지 않습니다.

이 명령을 실행하면 오류 세부 정보를 확인할 수 있습니다.

sudo service mongod status

에러가 이와 같은 것이라면

  • 소켓 파일 /tmp/mongodb-27017.sock의 연결을 해제하지 못했습니다.알 수 없는 오류
  • src/mongo/transport/transport_layer_asio.cpp 670에서의 치명적인 어설션 40486

이것을 실행하는 것만으로 문제가 해결됩니다.

rm /tmp/mongodb-27017.sock

저는 동네 스타벅스에서 일하면서 이런 문제를 겪었는데, 몽고 아틀라스를 통해 처음 데이터베이스를 설정했을 때 기억이 났습니다.데이터베이스에 액세스 할 수 있도록 IP 주소를 설정합니다.여러 스레드를 살펴본 후 Atlas에서 IP 주소를 변경했더니 문제가 사라졌습니다.이게 도움이 됐으면 좋겠네요.

도움이 될지는 모르겠지만 막상 해보니 효과가 있었어요.

「」mongo단말기로.

그런 다음 mongo 명령어가 반환하는 URL을 복사했습니다.

mongodb://127.0.0.1:*port*

JS코드의 URL을 이것으로 대체했습니다.

먼저 명령행 mkdir C:\data\db(데이터베이스용)를 사용하여 폴더를 작성한 후 명령어 프롬프트를 1개(관리 모드)로 mongod --port 27018을 실행합니다.이 경우 원하는 포트 번호를 지정할 수 있습니다.

이건 나한테 효과가 있었어.

mongoose.Promise = global.Promise;
  .connect(
    "mongodb://127.0.0.1:27017/mydb",
    { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true}).then(db => {
      console.log("Database connected");
    }).catch(error => console.log("Could not connect to mongo db " + error));

localhost를 사용하고 있었기 때문에 다음과 같이 변경했습니다.

mongodb://127.0.0.1:27017/mydb

있다는 이었습니다.mongoDB★★★★★★ 。

나는 다음을 가지고 있었다.

DATABASE_URL= "mongodb://localhost:3000/node-express-mongodb-server"

집에서는.env을 작성했습니다만, 「(환경변수)」를 실행하기 했습니다.mongoDB server 제가 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.mongoDB server 번호에 "cmd" (는 "cmd"로 표기)로했습니다.mongoDB

DATABASE_URL= "mongodb://localhost:27017/node-express-mongodb-server"

이제 잘 작동하게 되었습니다.

따라서 위의 솔루션 중 어느 것도 작동하지 않을 때 모든 것을 올바르게 설치한 후 시스템을 재시작하려고 생각했습니다.

이제 됐다.

내가 위에서 말한 모든 것을 했지만, 운이 없었다.나는 재기동만 성공했어!!한 번 재시작할 수도 있습니다.

Mac 사용자인 경우 터미널에서 homeBrew를 업그레이드하면 됩니다.

$ brew upgrade
$ mongod --config usr/local/etc/mongod.config
$ Xcode-select --install
$ mongo

를 'D' 했을 때 되었습니다.2701727017다른 포트에서 시작했더니 문제가 해결되었습니다.

위해서는, 「」로 합니다./etc/mongod.conf 쓰세요.port: 27017 port: 27019.

하다
sudo systemctl restart mongod.service.

MongoDB를 .--port다음과 같이 합니다.
mongod --port 27019 「」
mongo --port 27019

최고!

1) mongodb를 설치하지 않은 경우 설치합니다.

2) 새 터미널을 열고 "mongo"를 입력합니다.기본 포트 27017을 사용하여 로컬호스트에서 실행되고 있는 MongoDB 인스턴스에 연결합니다.

mongoose.connect('mongodb://localhost:27017/').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});

로컬 호스트 Mongoose 데이터베이스에만 연결하여 자신만의 컬렉션을 만드는 것이 좋습니다.포트 번호(기본값: 27017)를 잊지 마십시오.

최적의 표시를 위해 MongoDB UI용 Mongoose-compass를 다운로드하십시오.

이게 날 도와줬어새 폴더를 만들어 보십시오.MongoDB가 C:\Program Files에 설치되어 있는 경우 폴더는 db라고 불리며 폴더 데이터 내에 있어야 합니다.C:\data\db

mongod를 시작할 때 db를 찾을 수 없는 로그가 있어야 합니다.

VPN에 접속하여 접속이 완료되었습니다.나는 몇 가지 제한이 있는 것 같은 학교의 와이파이를 사용하고 있었다.

cloud.mongodb.com에 접속하여 클러스터에 접속하고 있을 것 같습니다.

빠른 수정 방법하나는 연결 탭으로 이동하여 현재 IP 주소를 추가하는 것입니다(브라우저 또는 데스크톱 앱의 클러스터 포털에서).와이파이 변경 등 여러 가지 이유로 IP주소가 변경되었을 것입니다.

이 방법을 시도해 보세요. 이 오류가 발생했을 때 효과가 있었어요.

내 경우는 조금 달랐다.시스템을 재부팅한 후 로컬 개발을 하면서 Mongo에 IP 주소를 화이트리스트에 올리지 않았습니다.

Select Network Access > Add IP Address > Add your current IP Address

방화벽이 MongoDB에 연결하던 포트 27017을 차단했습니다.

시스템에서 어떤 방화벽이 사용되고 있는지 확인합니다(예: csf, config 파일 저장 위치).

/etc/csf/csf.conf

TCP 검색_다음과 같이 IN 및 TCP_OUT 포트 27017을 허용 착신 및 발신 포트에 추가

# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222,27017"

# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,2222,27017"

config 파일을 저장하고 csf를 재시작하여 적용합니다.

csf -r

이것은 만약 당신이 당신의 mongo를 .http 셋업에 설치했다면 다른 사람에게 도움이 될 수 있습니다. 소프트웨어를 열고 설치 후 다시 시도하지 말고 복구를 선택하십시오.

먼저 시스템에 MongoDB 데이터베이스 서버를 설치하고 시작해야 합니다.

다음 링크를 사용하여 MongoDB를 설치합니다.

시스템에 이미 MongoDB 데이터베이스를 설치한 경우 다음 단계에 따라 DB가 시작 위치에 있는지 확인해야 합니다.

  1. CTRL + Shift + Esc 키를 누릅니다.
  2. 서비스 탭에 가서 몽고를 검색하다
  3. 상태를 확인합니다.정지될 수 있습니다.오른쪽 아래 구석에 있는 [서비스]탭을 클릭하여 MongoDB를 다시 검색합니다.
  4. 마우스 오른쪽 버튼을 클릭하거나 왼쪽 패널에서 DB를 시작합니다.

노드 버전이 업그레이드되었습니다.따라서 아래 단계를 따르십시오.

  1. nvm 설치
  2. 이전 버전의 노드(nvm i 16.12.0 등)를 설치합니다.
  3. nvm 사용 16.12.0

nvm의 usefull 명령어

사용 가능한 nvm 목록(사용 가능한 노드 버전이 표시됩니다)

macbook에서 오류가 발생한 경우 이 명령을 실행하여 mongodb 서버를 계속 실행합니다.

mongod --config /usr/local/etc/mongod.conf --fork

가장 큰 문제는 mongodb 서버가 연결을 거부하고 있다는 것입니다. 서버가 Macbook에 설치되어 있는데도 서버가 켜져 있지 않거나 활성화되지 않았을 수 있습니다.

언급URL : https://stackoverflow.com/questions/50173080/mongonetworkerror-failed-to-connect-to-server-localhost27017-on-first-connec

반응형