서버 127.0.0.1:27017에 연결할 수 없습니다


160

다음과 같은 오류가 발생합니다.

alex@alex-K43U:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
alex@alex-K43U:/$ 

이것은 mongodb를 시작하려고 할 때 발생합니다.

* Starting database mongodb                                             [fail]

나는 이미 시도했다 mongo --repair

chown 및 chmod를 var, lib 및 data / db에 만들고 mongodb를 기록했습니다 .

무엇을해야할지 모르겠습니다. 어떤 제안?

mongodb.log :

***** SERVER RESTARTED *****


Thu Oct 11 08:29:40 
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40 
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit: 
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now

편집하다:

자물쇠를 제거한 다음 mongod repair를 수행 하고이 오류가 발생했습니다.

Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

그래서 sudo로했습니다.

alex@alex-K43U:~$ sudo mongod --repair
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit: 
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now

그러나 여전히 같은 문제가 있습니다.


1
나는이 링크가
mongo

8
sudo service mongod restart나를 위해 일했다
Sudip Bhandari

답변:


31

로그는 오래된 잠금 파일이 있으므로 mongodb가 종료되고 있음을 나타냅니다.

저널링으로 실행 중이 아니거나 실행 중이 아닌 경우 잠금 파일을 제거하고 복구를 실행 한 후 mongodb를 다시 시작하십시오.

저널링을 켠 상태에서 실행 중이거나 실행중인 경우 관련 Mongo DB 문서를 참조하십시오 . "저널링으로 실행중인 경우 일관된 상태로 복구하기 위해 복구를 수행해서는 안됩니다." 따라서 저널링중인 경우 수리로 인해 상황이 악화 될 수 있습니다.


25
수리가 물건을 손상시킬 수 있다는 것은 나쁜 일입니다!
UpTheCreek

1
저널링 가능 상황에서 연결 거부 오류가 매우 자주 발생하면 어떻게해야합니까?
Shashank

149
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb. 
sudo mongod --repair 

Step 3: start mongodb.
sudo start mongodb 
or
sudo service mongodb start

Step 4: Check status of mongodb.
sudo status mongodb 
or   
sudo service mongodb status

Step 5: Start mongo console.
mongo 

1
안녕하세요 Nanhe Kumnar는 터미널의 초기 경로입니다. 우리는 cd / usr / local / opt / mongodb / 폴더 또는 다른 폴더로 가야합니까, Vijayvir-Singh 문제에 직면하고 있습니다 : ~ vijayvir $ sudo rm /var/lib/mongodb/mongod.lock rm : / var / lib /mongodb/mongod.lock : 해당 파일 또는 디렉토리 없음 Vijayvir-Singh : ~ vijayvir $
Vijayvir Sing Pantlia

@vvss는 먼저 파일의 경로를 찾습니다. 이것을 사용하십시오. mongod.lock을 찾습니다
Nanhe Kumar

9
버전 2.4.8에서는 /data/db/mongod.lock대신/var/lib/mongodb/mongod.lock
Loolooii

84

당신은 실행 mongod하기 전에 실행 했습니까mongo ?

http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ 에서 mongodb 설치 지침을 따랐으며 mongo실제로 몽고 프로세스를 실행하기 전에 실행 했을 때와 동일한 오류가 발생했습니다. mongod. mongodb를 설치하면 시작될 것이라고 생각했지만 mongodb가 필요한 mongod다른 작업을 수행하기 전에 수동으로 시작해야합니다 .


10
이것은 내 문제였다. "Mongo 시작하기"문서에서 이것이 명확하지 않은 것에 놀랐습니다.
jononomo

이것은 실제로 사용자 경험 관점에서 의미가 없습니다. mongo.exeDB를 시작하는 것이되어야합니다.
Moshe Karmel

58

이것은 mongod 프로세스가 다운 되었기 때문에 mongod 프로세스를 시작하려면 다음 명령을 실행해야합니다.

~$ sudo service mongodb stop

~$ sudo rm /var/lib/mongodb/mongod.lock

~$ sudo mongod --repair --dbpath /var/lib/mongodb

~$ sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb

~$ sudo service mongodb start

이것이 도움이되기를 바랍니다.


2
문제 해결됨. 감사합니다. 나는 명령을 추가 할 것입니다 sudo service mongod stopsudo service mongodb stop첫 번째 명령 전에 어떤 사람들은 여전히 실행했을 수도 있기 때문이다.
Georgi Georgiev

1
몽고를 다시 시작하는 데 도움이되었습니다. 그러나 더 이상 이전 데이터베이스에 액세스 할 수 없습니다. 제발 도와주세요.
Ehsan

13

시험

sudo service mongodb start

이것은 내 문제를 해결했습니다.


의 차이 무엇입니까 sudo service mongod startsudo service mongodb start
geckob

확실하지는 않지만 mongodb를 추측하는 것은 서비스의 이름이고 mongod는 프로그램 파일의 이름입니다.
潘博韜

7

파일 시스템 여유 공간을 확인하고 적은 경우 늘리십시오. 또한 몽고가 시작되지 않을 수 있습니다. /var/log/mongodb/mongodb.log 파일을 확인하십시오.

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles

이것은 나에게 일어 났고 /file/etc/mongod.conf 파일에 smallfiles = true를 추가했습니다
Carlos

7

mongod전에 실행 해보십시오 mongo.

sudo /usr/sbin/mongod 내 openuse에서

이것은 내 문제를 해결했다.


6

먼저 아래 명령으로 mongod.lock 파일을 제거해야합니다

sudo rm /var/lib/mongodb/mongod.lock

그런 다음 아래 명령을 실행하여 몽고 서비스를 다시 시작하십시오.

sudo service mongod restart 

4

netstat -anp | grep 27017다른 프로세스에서 포트를 사용 중인지 확인할 수 있습니다 .


이상하게, 나는 이것을 얻었다 : alex @ alex-K43U : ~ $ netstat -anp | grep 27017 (모든 프로세스를 식별 할 수있는 것은 아니며, 소유하지 않은 프로세스 정보는 표시되지 않습니다. 모든 정보를 보려면 루트
여야

2
netstat는 사용자가 볼 수있는 프로세스 만 표시하므로 루트가 아닌 사용자로 실행하면 정상적인 결과입니다.
Efren

sudo netstat -anp | 27017을 grep하여 경고를 전달 함
Wiston Coronell

이것은 나를 위해 일합니다, 고마워요. 주어진 코드 unix 2 [] STREAM 31095-/tmp/mongodb-27017.sock을 실행하고 .sock 파일을 제거하면 모든 것이 정상입니다.
Abel

4

Windows에서 관리자로 cmd를 실행하십시오.

  1. 디렉토리를 작성하십시오.

    mkdir c : \ mongo \ data \ db

  2. 서비스 설치 :

    mongod.exe --install --logpath c : \ mongo \ logs --logappend --bind_ip 127.0.0.1 --dbpath c : \ mongo \ data \ db --directoryperdb

  3. MongoDB를 시작하십시오 :

    인터넷 스타트 MongoDB

4. Mongo Shell을 시작하십시오 :

c:\mongo\bin\mongo.exe

이 솔루션은 저에게 잘 작동합니다


3

이것은 나를 위해 일했다 :

sudo rm /var/lib/mongodb/mongod.lock    
sudo service mongodb restart

3

나중에 참조 할 수 있도록 유사한 오류를 피하려면 다음 단계를 따르십시오.

1. MondoDB 다운로드 https://www.mongodb.com/

터미널을 열고 다운로드 폴더 또는 mondodb 다운로드를 저장 한 폴더 로 CD를 넣으십시오 (CD로 들어가기 전에 mongodb 폴더를 추출하십시오)

cd Downloads

3. mongodb를 usr / local 경로로 이동

sudo mv mongodb-osx-... /usr/local/mongodb

로컬 폴더에 4.cd

cd /usr/local/mongodb

5. 새 디렉토리 만들기

sudo mkdir -p /data/db

위에서 만든 새 디렉토리에 6.cd

cd /data/db

7. 몽고 퍼미션 제공

sudo chown YourMacUserName /data/db

8. 그런 다음 .bash_profile로 이동하십시오.

이렇게하려면 다음 단계를 수행하십시오.

사용자 A의 새 터미널

1 . cd 2 .pwd 3 .ls -l

터미널의 파일 목록에 .bash_profile이 나타나는지 확인하십시오.

-bash_profile을 작성하지 않으면

.bash_profile 생성 :

터미널에서

.bash_profile을 터치하십시오.

// 이미 .bash_profile이 있으면이 단계를 건너 뜁니다.

8 단계 :

터미널에서 다음 :

open .bash_profile

그리고 bash 파일 에서 다음을 추가하십시오.

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

그런 다음 저장하십시오 . (파일 저장 또는 S / CMD + S 명령)

9 단계 : 터미널로 돌아 가기 :

source .bash_profile

이제 두 터미널 열고 당신을위한 명중 한명 것 데몬 몬도 당신을위한 다른 몽고를 .

터미널 1 : 터미널 에서 : mongod

mongodb

산출: 몽고 터미널

터미널 2:

mongo

산출: 몽고 터미널

또한 터미널에 mongod를 시작할 때 다음과 같은 오타 실수를 해달라고하십시오 : 이것은 잘못된 것입니다

mongo d

다음 오류가 발생합니다 : 127.0.0.1:27017에 연결하지 못했습니다 (폴링 후 오류 소켓 확인), 이유 : 연결이 거부되었습니다.

이것은 맞습니다 :

mongod

(몽고와 몬도 라는 단어 사이에는 공백이 없어야합니다.

마지막으로 터미널에서 mongo실행하기 전에 mondod실행해야합니다 .


2

나는 http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ 의 문서를 따랐다. .

구성 및 재부팅 후, 나는 실행 sudo service mongod start하고 얻었다 ... [FAILED].

마침내 나는 그것이 mongod시작된 것을 발견했다 . 내가 생각하기에yum install 자동 시작에 추가.

mongod실행 중인지 확인하려면 다음 을 수행하십시오.service mongod status .

이것이 누군가 같은 문제를 겪을 수 있기를 바랍니다.


2

빈번한 시도 끝에 마침내 문제를 해결해야했습니다 ...

Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo

2

이 오류는 MongoDB의 바인드 IP 설정으로 인해 발생할 수 있습니다. MongoDB의 설정 파일을 확인하여

$ sudo vi /etc/mongodb.conf

필자의 경우 바인드 IP는 다음과 같이 서버의 인트라넷 주소로 설정됩니다.

bind_ip = 10.10.1.14 
#port = 27017

그래서 mongo에게 유형별로 쉘에 연결하는 IP 매개 변수를 제공했습니다.

$ mongo 10.10.1.14

구성을 변경 한 경우 mongodb 서비스를 다시 시작하는 것을 잊지 마십시오.


2

mongo 버전 3.2.1이 있으며이 /data/db/이후로 잠금 파일을 삭제하고 실행 mongod하고 성공적으로 시작했습니다.

>rm /data/db/mongod.lock
>mongod


1

내 Windows OS의 데이터 디렉토리에있는 mongod.lock을 제거한 후에도 여전히 동일한 오류 메시지가 표시되었습니다. mongo 명령을 오류없이 실행하려면 --dbpath와 함께 mongod를 실행해야했습니다.


1

답변을 받았지만에서 네트워크 오류에 대해 논의하고 싶습니다 MongoDB.

네트워크 오류 MongoDB

안전한 쓰기 문제를 설정하는 것이 안전한지 확인하는 완전한 증거 방법이 아닙니다. 쓰기 승인이 서버에서 수신되지 않으면 w=1& j=true가 설정 되었다고 가정 해 봅시다 . 아마 그런 일은 일어나지 않았을 수도 있지만 일어날 수도 있습니다. 이것이 발생한 이유는 네트워크 오류가 있기 때문입니다. 긍정적 인 응답을받지 못할 수도 있습니다. 따라서 선택한 언어의 드라이버를 통해 응용 프로그램에서 요청을 보낼 수 있습니다.mongod성공적으로 완료하면 TCP 재설정이 가능하며 네트워크는 실제로 응답을받지 못하는 방식으로 재설정 될 수 있습니다. 따라서 오류가 발생하여 오류가 발생했다고 가정 할 수 있습니다. 그런 일은 없었지만 일어날 수도 있습니다.

인서트의 경우이를 방지 할 수 있습니다. 드라이버가 생성하고 _id삽입 작업을 수행하면 삽입 작업을 여러 번 수행 할 수 있기 때문에 위험 할 수 있습니다. 우리가이 1 번째 시간을 할 때 오류가 발생하고 네트워크 오류이기 때문에 삽입이 완료되었는지 확실하지 않은 경우 다시 할 수 있습니다. 그리고 우리가 그것을 다시 수행한다면, 정확한 수행을 위해 tyr _id. 최악의 시나리오는 삽입하려고 할 때 중복 키 오류가 발생한다는 것입니다.

그러나 업데이트는 문제가 발생하는 곳입니다. 특히, 강력한 항목이 아닌 업데이트는 예를 들어 $ink명령을 포함했습니다 . 따라서 데이터베이스에 특정 필드를 증가 시키라고 지시합니다. 이 경우 네트워크 오류가 발생하여 업데이트가 발생했는지 여부를 알 수없는 경우가 있습니다. 이제 업데이트가 발생했는지 확인할 수있는 값에 대해 충분히 알고있을 것입니다. 그러나 해당 필드에 대한 데이터베이스의 시작 값을 모르는 경우 네트워크 오류가 발생했는지 여부를 알 수 없습니다. 이런 종류의 문제는 훌륭한 네트워크에서는 극히 드 rare니다.

그리고 우리가 정말로 그것을 피해야 할 필요가 있다면, 우리가해야 할 일은 데이터베이스에서 문서의 전체 가치를 읽은 다음 잠재적으로 삭제하고 다시 삽입하거나 삽입함으로써 모든 업데이트를 삽입물로 설정하는 것입니다 새로운 것.

쓰기에 성공한 경우에도 응용 프로그램에서 오류가 발생하는 이유 :

  • 서버가 쓰기를 수신 한 후 응답을 보내기 전에 응용 프로그램과 서버 간의 네트워크 TCP 연결이 재설정되었습니다.
  • MongoDB서버가 쓰기를 수신과 응답 사이에 종료됩니다.
  • 쓰기 시간과 클라이언트가 쓰기에 대한 응답을받는 시간 사이에 네트워크가 실패합니다.

1

mongodb 사용을 중지하려면 다음을 수행하십시오.

use admin
db.shutdownServer()

그리고 다시 시작하려면 :

sudo service mongod restart


0

환경 변수에서 PATH에 저장소를 추가하면 도움이됩니다.

GOTO 설치 경로 및 Windows에서 환경 변수의 PATH 변수에 ../bin을 복사하십시오.


0

윈도우 + R 과 다음을 입력

services.msc

MongoDB 시작

이제 mongo.exe가있는 해당 경로에 cmd에 "mongo"를 입력하면 작업이 시작됩니다.


0

1. D 드라이브 D : / data / db에 새 폴더 생성

2. D : / data / db에서 터미널 열기

3. mongod를 입력하고 입력하십시오.

4. mongo를 입력하고 입력하십시오.

그리고 당신의 mongodb는 strated ............






0

오류 : 서버 127.0.0.1:27017에 연결할 수 없습니다

WINDOWS 사용자가 여기에 코드를 입력 할 수있는 솔루션입니다. 1. 디렉토리를 만듭니다.

mkdir c:\mongo\data\db
  1. 서비스 설치 : 먼저 cd를 사용하여 MongoDB의 프로그램 파일에서 bin 디렉토리로 이동하십시오.

mongod.exe --install --logpath

  1. MongoDB를 시작하십시오 :

    net start MongoDB

4. Mongo Shell을 시작하십시오 :

`c:\mongo\bin\mongo.exe` or

빈까지 가서 입력 mongo

참고 : 관리자 모드에서 터미널 열기


0

Ubuntu 18.04LTS : 이전 버전을 완전히 제거하고 4.2.6을 설치할 때 문제가 발생합니다.

인터넷 검색 후 다른 문제를 해결했습니다.

MongoDB 시작 실패-*** fassert () 실패 후 중단

문제 가 서버에 연결할 수 없다는 것에 대해 희망 이 없었습니다 . 모든 것이 정상으로 보였기 때문입니다.

마지막으로, 나는 운영 체제를 다시 시작하기로 결정하고 무엇을 추측 ... BINGO

sudo mongo // works like a charm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.