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
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
이젠 정말 MongoDB를 사용하러 가야겠다.
'JavaScript > Node.JS' 카테고리의 다른 글
[Error] Error: listen EADDRINUSE: address already in use :::4000 (0) | 2021.07.27 |
---|