나는 그것이 문제를 논의하는 방법이라는 것을 알고 있으며 SO와 Google에서 일반적으로 찾은 거의 모든 주제를 다루었지만 여전히 해결책은 없습니다!
문제
임의의 시점에서 다음 오류가 발생합니다.
MongoError: failed to connect to server [127.0.0.1:20000] on first connect
at Pool.<anonymous> (/home/user/node_modules/mongodb-core/lib/topologies/server.js:326:35)
at emitOne (events.js:96:13)
at Pool.emit (events.js:189:7)
at Connection.<anonymous> (/home/user/node_modules/mongodb-core/lib/connection/pool.js:270:12)
at Object.onceWrapper (events.js:291:19)
at emitTwo (events.js:106:13)
at Connection.emit (events.js:192:7)
at Socket.<anonymous> (/home/user/node_modules/mongodb-core/lib/connection/connection.js:185:10)
at Object.onceWrapper (events.js:291:19)
at emitNone (events.js:86:13)
해결책
응용 프로그램을 종료하고 mongod
서비스를 다시 시작한 다음 (.lock 파일이 삭제됨) 응용 프로그램을 다시 시작합니다. 이제 모든 것이 원활하게 실행됩니다. 분명히 그것은 허용되는 해결책이 아닙니다!
환경과 사실
응용 프로그램은 다음을 사용하여 작성됩니다.
서버는 Centos 7을 실행하는 VPS (OpenVZ)입니다.
MongoDB는 .rpm
문서에 설명 된대로 권장되는 방법을 사용하여 설치되었습니다 .
앞서 언급 한 오류로 응용 프로그램이 충돌하더라도 셸을 통해 연결하고 쿼리를 실행할 수 있습니다.
로그에 해당 오류나 원인이 될 수있는 내용이 없습니다. 유일한 시작 경고는 ext4 대신 xfs 사용 및 OpenVZ와 함께 MongoDB 사용에 관한 것입니다.
mongod.conf에 대한 유일한 구성 변경은 수신 대기 포트와 인증 활성화였습니다.
mongojs와 함께 사용되는 연결 문자열은 다음과 같습니다.
var mongojs = require('mongojs');
var db = mongojs('mongodb://username:[email protected]:20000/database')
도움의 외침 순간
제발! 도와주세요 ... 정말 짜증나고이게 나인지 드라이버인지 설정인지 알 수 없습니다!
미리 감사드립니다
최신 정보
패키지 버전의 데이터베이스를 제거하고 수동 설치를 수행했지만 여전히 결과가 없습니다! 오류가 계속 발생합니다 ...
여기에 우리의 문제가 해결되었습니다.
서버를 변경하고 OpenVZ에서 KVM "기반"VPS로 이동했습니다. 모든 애플리케이션 요소는 동일하고 (앱 코드 / 노드 / npm / mongo / drivers 등) 동일한 OS (여전히 Centos 7)를 유지했습니다.
이유는 단 하나도 아니지만 앱이 몇 분 또는 몇 시간마다 충돌하는 대신 약 1 주일 동안 새 서버에서 완벽하게 실행됩니다.
이것이 누군가를 돕기를 바랍니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다