서버 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 stop및 sudo service mongodb stop첫 번째 명령 전에 어떤 사람들은 여전히 실행했을 수도 있기 때문이다.
— Georgi Georgiev

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

13

시험

sudo service mongodb start

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


의 차이 무엇입니까 sudo service mongod start와sudo 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.