Mongodb: 처음 연결할 때 서버에 연결하지 못했습니다.
다음 오류가 발생합니다.
Warning { MongoError: failed to connect to server [mongodb:27017] on first connect
at Pool.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/topologies/server.js:325:35)
at emitOne (events.js:96:13)
at Pool.emit (events.js:188:7)
at Connection.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/pool.js:270:12)
at Connection.g (events.js:292:16)
at emitTwo (events.js:106:13)
at Connection.emit (events.js:191:7)
at Socket.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/connection.js:173:49)
at Socket.g (events.js:292:16)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at connectErrorNT (net.js:1025:8)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
name: 'MongoError',
message: 'failed to connect to server [mongodb:27017] on first connect' }
내가 Mongo를 실행하는 터미널 창에서 이것을 받더라도:
2016-12-25T03:45:23.715+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:58868 #8 (8 connections now open)
뭔가 연관성이 있는 것 같습니다.
둘 다 먹어봤어요.
$ mongod
그리고.
$ brew services start mongo
이것은 나의 test_helper.js입니다.
const mongoose = require('mongoose');
mongoose.connect('mongodb:localhost/users_test');
mongoose.connection
.once('open', () => console.log('Good to go!'))
.on('error', (error) => {
console.warn('Warning', error);
});
저는 몽구스나 몽구스 또는 둘 다 즉시 이 작업을 수행할 것이라는 인상을 받고 있기 때문에 특별히 db "users_test"를 만들지 않았습니다.
"localhost"와 "127.0.0.1"을 모두 사용해 보았습니다.OSX 10.11.5에서 Node 7.3.0과 Mongo 3.2.9를 실행하고 있습니다.
내가 뭘 잘못하고 있는 거지?무엇이 문제인지 어떻게 알 수 있습니까?
솔루션이 다른 컨텍스트에서 제공되므로 답변을 하나 더 추가합니다.
MongoDb Atlas 문제 해결책
MongoDB Atlas에 연결하여 다음 단계에 따라 컴퓨터의 IP를 화이트리스트에 올렸습니다.
- 보안 탭으로 이동
- 보안 탭 아래의 네트워크 액세스 탭으로 이동합니다.
- IP 화이트리스트 탭으로 이동
- 컴퓨터의 IP 주소를 입력합니다.
연결하기mongodb와 함께mongoose사용할 수 있습니다.
mongoose.connect('mongodb://localhost/users_test');
또는
mongoose.connect('localhost/users_test');
또는
mongoose.connect('localhost','users_test');
하지만 아닙니다.mongoose.connect('mongodb:localhost/users_test');올바른 호스트 이름과 일치하지 않습니다(mongodb대신에localhost)
제가 mlabdb를 연결하는 동안 같은 오류가 발생했습니다. 왜냐하면 제 조직 네트워크에 제한이 있어서 모바일 핫스팟으로 전환했더니 작동했습니다.
저는 이 문제를 여러 번 마주쳤고, 여기 몇 가지가 있습니다.troubleshooting list
- 확실하게
database path이라exist의 창의 기본 경로C:\data\db - 확실하게
mongo is running에 달려 있습니다.C:\Program Files\MongoDB\Server\3.4\bin다음을 실행합니다.mongod.exemongo.exe
- 반드시 당신의
connection string is correct맘에 들다mongodb://localhost/database-name
MongoDB 클러스터인 경우 현재 IP를 클러스터에 추가하고 현재 IP 주소를 추가하려면 아래의 몇 단계를 완료해야 합니다.
step 1- go to login page of Mongodb and login with valid credential - https://cloud.mongodb.com/user#/atlas/login
step 2- CLick Network Access from left sidebar under Security Section
Step 3 - Click Add IP Address
Step 4 - Click Add Current IP Address or Allow Connection From Any Where
now try to connect - npm start
로컬 MongoDB의 경우 "mongodb+srv://filename:pass%40ord@clastername-blqnk.mongodb.net/test?retryWrites=true&w=majority "과 같은 mongo String을 사용합니다.
암호는 예제 문자열처럼 인코딩되어야 합니다.
와이파이 네트워크에 연결되어 있는 동안,mongodb://localhost/db_name예상대로 작동했습니다.
제가 와이파이 네트워크에 연결되어 있지 않았을 때, 이것은 작동하지 않았습니다.대신에 저는 사용했어요.mongodb://127.0.0.1/db_name그리고 그것은 성공하였다.
아마도 IP 구성과 관련된 문제일 것입니다.
ATLAS와 같은 클라우드의 원격 DB의 경우 화이트리스트 항목 0.0.0/0을 생성해야 합니다.이를 통해 모든 IP 주소에서 클러스터 ATLAS에 액세스할 수 있습니다.
저는 mongo가 실행되지 않는 것이 문제였습니다.그래서 먼저 콘솔에서 "mongod" 명령을 시작했습니다.나중에 다른 콘솔 탭에서 "mongo"를 실행했습니다.이제 연결이 성공했습니다.이제 앱을 실행하면 문제가 해결됩니다.
저는 PowerShell 인스턴스에서 mongod를 실행하고 있었습니다.mongod에서 파워셸 콘솔의 출력을 받지 못했습니다.mongod가 실행 중인 PowerShell 인스턴스를 클릭하여 Enter 키를 누르고 실행을 재개했습니다.실행이 중단된 원인이 무엇인지는 모르겠지만, 지금 당장 이 몽고의 인스턴스에 연결할 수 있습니다.
mlab과 회사 와이파이를 연결하려고 했는데 오류가 발생했습니다.하지만 제가 개인 네트워크로 전환했을 때 작동했고 연결되었습니다.
mongo 인스턴스가 cloud.mongodb.com 에서 빌드된 경우 인스턴스가 구성될 때 IP 화이트리스트 풀에 설정된 알려진 IP 주소에서만 작업할 수 있을 때 이 오류가 나타납니다.
따라서 mongo 대시보드에서 왼쪽의 네트워크 액세스 메뉴에서 IP 화이트리스트의 현재 IP 주소를 설정해야 합니다.
BR,
로컬 MongoDb 문제 솔루션
다음 단계를 수행하여 문제를 해결합니다.
변경되었다.
mongodb://localhost:27017/local
로.
localhost/local
그리고 오류는 사라졌습니다.
VPN에 연결했는데 작동했습니다.저는 학교 와이파이를 사용하고 있었습니다.
구성 문제 이외에 두 가지 간단한 이유가 있을 수 있습니다.
- 조직/기관의 VPN에 연결되어 있는 경우 연결에 제한이 있을 수 있습니다.
- 화이트리스트 "IP"에서 연결하지 않았습니다.
화이트리스트 IP를 추가하려면 MongoDB Atlas에 로그인한 후 Security -> Network Access -> Add IP Address
그런 다음 '액세스 목록 항목' 필드에 현재 IP를 추가합니다.
나의 경우, 나는 맥을 다시 시작하고 다시 일하고 있었습니다 :)
저는 위의 모든 방법을 시도했습니다.
- 모든 DB에서 액세스가 허용됩니다.
- 연결 문자열의 올바른 자격 증명을 확인했습니다.
- 다른 사용자를 생성했습니다.
그 어떤 것도 저에게 효과가 없었습니다.
마지막으로, 저는 새로운 DB를 만들고 그것으로 전환했습니다.모든 것이 괜찮았다.다행히 (자습 목적의) 중요한 DB가 아니어서 피해가 크지 않았습니다.
언급URL : https://stackoverflow.com/questions/41318354/mongodb-failed-to-connect-to-server-on-first-connect
'programing' 카테고리의 다른 글
| 스프링 부츠 & JPA:선택적이고 범위가 넓은 기준으로 검색 쿼리 구현 (0) | 2023.07.10 |
|---|---|
| 실행력을 높이는 다음과 같습니다.장시간 실행되는 쿼리의 시간 초과? (0) | 2023.07.10 |
| Git에 추적 중인 파일 목록을 표시하려면 어떻게 해야 합니까? (0) | 2023.05.11 |
| "이 작업을 수행하려면 Ruby 및 Sass가 설치되어 있고 PATH에 있어야 합니다." 경고를 해결하는 방법은 무엇입니까? (0) | 2023.05.11 |
| Python 3.1에서 문자열의 HTML 엔티티를 이스케이프 해제하려면 어떻게 해야 합니까? (0) | 2023.05.11 |




