Socket Exception:주소가 이미 MONGODB를 사용 중입니다.
mongodb를 실행하려고 할 때 이 오류를 발견했습니다.홈브루를 통해 설치합니다.도와 주세요
Agungs-MacBook-Pro:~ agungmahaputra$ mongod
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] MongoDB starting : pid=5189 port=27017 dbpath=/data/db 64-bit host=Agungs-MacBook-Pro.local
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] db version v3.6.0
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] git version: a57d8e71e6998a2d0afde7edc11bd23e5661c915
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2n 7 Dec 2017
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] allocator: system
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] modules: none
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] build environment:
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] distarch: x86_64
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] target_arch: x86_64
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] options: {}
2017-12-26T15:31:15.911+0700 E STORAGE [initandlisten] Failed to set up listener: SocketException: Address already in use
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] now exiting
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] shutting down with code:48
Agungs-MacBook-Pro:~ agungmahaputra$
이전 mongod 인스턴스를 중지하고 새 인스턴스를 시작할 수 있습니다.
이전 mongod 인스턴스를 종료하려면 먼저 컴퓨터에서 실행 중인 태스크 목록을 검색하십시오.
sudo lsof -iTCP -sTCP:LISTEN -n -P
mongod COMMAND와 해당 PID 및 유형을 검색합니다.
sudo kill <mongo_command_pid>
이제 mongod 인스턴스를 입력해서 시작합니다.
mongod
MongoDB가 정상적으로 실행되고 있는 것을 확인할 수 있습니다.
포트에서 프로세스가 이미 실행 중입니다.27017
에 의해 사용됩니다.mongodb
따라서 해당 포트에서 프로세스를 중지하거나 다른 포트 번호로 시도해야 합니다.
해라mongod --port 27018
선택한 포트 번호를 변경할 수 있습니다.
편집:
또한 mongo 서버의 실행 중인 모든 인스턴스를 정지할 수도 있습니다.sudo killall mongod
@Dassi Orleando가 댓글로 언급했듯이그리고 달려라mongod
요약 기타(@Tony Roczz
,@Balasubramani M
)의 답변은 다음과 같습니다.
근본 원인
에러:Failed to set up listener: SocketException: Address already in use
다음을 의미합니다.
- 이전에 mongodb를 실행한 적이 있다
- 기본 포트 사용
27017
- 기본 포트 사용
솔루션
(대부분의 경우) 종료 후 재시작mongod
몽고드를 죽이다
두 가지 방법:
- killall을 사용하다
killall mongod
- PID로 죽이다
- mongod PID 찾기
- 방법 1:
ps aux | grep mongod
- 출력은 다음과 같습니다.
limao 425 ... /usr/local/opt/mongodb-community/bin/mongod --config /usr/local/etc/mongod.conf
- 방법 2:.
lsof -iTCP -sTCP:LISTEN -n -P
- 출력은 다음과 같습니다.
mongod 425 limao .. TCP 127.0.0.1:27017 (LISTEN)
- 방법 1:
- PID에 의한 정지:
kill -9 425
- mongod PID 찾기
몽고드를 재기동하다
- 대부분의 경우:
mongod
- 어떤 특별한 경우
brew services start mongodb-community
- 설치 커뮤니티 버전의 Mac:
brew install mongodb-community
- 설치 커뮤니티 버전의 Mac:
(몇몇사람에게) 다른 포트로 실행하다
- 다른 포트로 실행:
mongod --port 27018
- 여러 mongod 서버를 동시에 실행하고 싶은 사용자만
기타 주의사항
실행 중인 mongodb가 사용하는 포트는 무엇입니까?
lsof -iTCP -sTCP:LISTEN -n -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 425 limao 10u IPv4 0xab744305e75263cf 0t0 TCP 127.0.0.1:27017 (LISTEN)
볼 수 있다27017
는 현재 mongodb 포트를 실행하고 있습니다.
mongod가 실행 중인지 확인하는 방법
- mongod 상태 확인:
ps aux | grep mongod
- 출력으로 확인할 수 있습니다.
mongod
서비스
- 출력으로 확인할 수 있습니다.
brew services list
- 에 의해 설치된 경우
brew
로부터 시작하다brew
- 에 의해 설치된 경우
mongodb 버전 4.*를 사용하고 있는 경우
기본 설정에는 필요한 권한을 가진 "db" 폴더 "/data/db"가 있어야 합니다.
그것을 확인하기 위해 MongoDB 서비스가 시작되었습니다.
brew services list
그렇지 않으면 실행한다
brew services start mongodb
몽고 대신 몽고를 경영하다
mongo의 서버를 닫기 위해 아래 명령어를 명령줄에 붙여 해결했습니다.
sudo pkill -f mongod
"sudo"(슈퍼 사용자 실행)는 명령어 admin 권한을 실행하므로 사용자 암호를 묻습니다.
먼저 다음 명령을 사용하여 실행 중인 서버를 종료합니다.
mongod --shutdown
그런 다음 실행합니다.
sudo mongod
다음 명령어를 실행한 후:
sudo lsof -iTCP -sTCP:LISTEN -n -P
mongod COMMAND와 해당 PID 및 유형을 검색합니다.
sudo kill <mongo_command_pid>
mongod를 재부팅해도 여전히 Socket Exception: 같은 오류와 함께 실패합니다.주소가 이미 사용 중입니다."
서버가 어제 다시 시작되었는데 이 일이 발생했습니다.
이 명령어 하나만으로
sudo pkill -f mongod
에러가 포토에 있는 것을 확인합니다.catalina 를 사용하고 있는 경우는, ~/data/db 에 관해서도 보고된 문제가 있습니다.
mongod 프로세스가 이미 다운된 경우 /tmp에서 .sock 파일을 삭제하기만 하면 됩니다.
mongod는 이미 다운되어 있기 때문에 다음 위치에 표시되지 않습니다.
lsof -iTCP -sTCP:LISTEN -n -P
오류:
[root@ol7db19c1 ~]# mongod -f /etc/csrs_2.conf
about to fork child process, waiting until server is ready for connections.
forked process: 6721
ERROR: child process failed, exited with error number 48
To see additional information in this output, start without the "--fork" option.
로그 파일(/var/mongodb/db/csrs2.log):
2020-07-05T16:03:59.354-0300 E STORAGE [initandlisten] Failed to set up listener: SocketException: Address already in use
따라서 소켓 잠금에 대해 다음을 찾습니다.
ls -ltra /tmp|grep .sock
제거만 하면 됩니다(실가동 환경에서 주의해서 작업합니다).
rm -f mongodb-26002.sock
지-럭!
당연한 것처럼 들리겠지만 mongodb가 이미 실행 중인지 확인해야 합니다.따라서 먼저 다음을 실행하여 DB를 시작하는 대신 다음을 수행합니다.
sudo mongod
직접 실행:
mongo
언급URL : https://stackoverflow.com/questions/47975929/socketexception-address-already-in-use-mongodb
'programing' 카테고리의 다른 글
리액트 컨스트럭터 ES6 대 ES7 (0) | 2023.04.06 |
---|---|
JSON의 키와 가치를 얻는 방법 (0) | 2023.04.01 |
인터페이스 상태 및 타이프스크립트의 소품 반응 (0) | 2023.04.01 |
WordPress 게시 텍스트 손상 (0) | 2023.04.01 |
동위원소 - 각 범주 내 최신 게시물 표시 (0) | 2023.04.01 |