JavaScript/Node.JS

[Error] MongoDB 설치 중 에러.. [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused

wookhyung 2021. 8. 4. 17:10
728x90

MongoDB를 사용하기 위해 설치했다.

 

1. WSL 터미널을 연다
2. 'sudo apt update' 을 입력하고 apt 업데이트
3. 'sudo apt-get install mongodb' 을 입력하고 설치한다
4. 'mongod --version' 을 입력하고 설치가 잘 되었는지 확인한다
5. 'sudo service mongodb start' 을 입력하고 mongo 를 사용할 수 있게 서비스 시작
6. 'mongo' 를 입력하면 mongo shell로 이동한다

 

https://docs.microsoft.com/ko-kr/windows/wsl/tutorials/wsl-database#install-mongodb

 

WSL을 사용 하 여 데이터베이스 추가 또는 연결

Linux용 Windows 하위 시스템에서 MySQL MongoDB, PostgreSQL, SQLite, Microsoft SQL Server 또는 Redis를 설정 하는 방법에 대해 알아봅니다.

docs.microsoft.com

MS 공식홈페이지에도 WSL를 사용하여 MongoDB를 설치하는 방법이 나와있다.

 

하지만 mongo를 입력하면 다음과 같은 에러가 발생한다..

connecting to: mongodb://127.0.0.1:27017
2021-08-04T15:16:21.081+0900 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2021-08-04T15:16:21.081+0900 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

 

찾아보니까 동일 에러를 겪었던 분들이 많다. 저 에러는 mongodb 서버가 실행되지 않아서 연결이 안된거라고 한다.

 

mongd를 실행해보니까 다음과 같은 에러 메시지가 나온다.

 

2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten] MongoDB starting : pid=5345 port=27017 dbpath=/data/db 64-bit host=DESKTOP-CJQLOQK
2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten] db version v3.6.8
2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten] git version: 8e540c0b6db93ce994cc548f000900bdc740f80a
2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020
2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten] allocator: tcmalloc
2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten] modules: none
2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten] build environment:
2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten]     distarch: x86_64
2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten]     target_arch: x86_64
2021-08-04T15:20:33.522+0900 I CONTROL  [initandlisten] options: {}
2021-08-04T15:20:33.523+0900 I STORAGE  [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
2021-08-04T15:20:33.523+0900 I CONTROL  [initandlisten] now exiting
2021-08-04T15:20:33.523+0900 I CONTROL  [initandlisten] shutting down with code:100

중간에 보면  exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating 라고 나오는데, /data/db 에 해당하는 경로가 없다고 한다. 

 

cd .. 를 통해 루트 다이렉트까지 왔고 sudo mkdir -p data/db 를 통해 폴더를 만들었다.

 

2021-08-04T16:18:44.971+0900 I STORAGE  [initandlisten] exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: /data/db, terminating

mongod 를 다시 입력해보면 이젠 읽는 파일이라고 나오므로 해결해줘야 한다.

 

sudo chown -R `id -un` data/db

 

다시 mongod를 입력했는데 또 에러다.

 

2021-08-04T16:19:02.999+0900 E STORAGE  [initandlisten] Failed to set up listener: SocketException: Address already in use

이미 27017 포트를 사용중이랜다. 그래서 sudo killall mongod 명령어로 모두 제거한 뒤에 다시 mongod를 실행해봤다.

드디어 정상적으로 된다. port 27017 이 나온다면 정상작동이 되는 것이라고 한다.

mongo 역시 정상적으로 작동한다. 마지막에 > 표시가 있으면 정상적동 되는 것이다.

 

마지막으로, mongoDB 버전을 확인해보면 최신 버전이 5.0인데 왜 3.6 버전으로 설치가 된건지 모르겠다.

 

구글링을 해보니까 stackoverflow에 있는 해당 글을 보고 다시 설치를 해봤더니 5.0으로 설치가 됐다.

 

https://stackoverflow.com/questions/62495999/installing-mongodb-in-wsl

 

Installing MongoDB in WSL

I was trying to install MongoDB in WSL running Ubuntu 18.04 after seeing this documentation. But MongoDB says that: IMPORTANTThe mongodb package provided by Ubuntu is not maintained by MongoDB Inc...

stackoverflow.com

 

이젠 정말 MongoDB를 사용하러 가야겠다.