Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

집 짓는 개발블로그

ec2 ubuntu 22.04에 MongoDB 6.0 설치 + MongoDB 외부 접속 허용 + 사용자 계정 생성 본문

카테고리 없음

ec2 ubuntu 22.04에 MongoDB 6.0 설치 + MongoDB 외부 접속 허용 + 사용자 계정 생성

취준er 2023. 12. 10. 05:49

기존에 ubuntu 20.04에 MongoDB 4.4를 설치해 잘 사용하고 있었으나 프로젝트용 aws 계정을 하나로 합치는 과정에서 DB를 이사하게 되었다. 이번에는 ubuntu 22.04에 MongoDB 6.0을 설치했다. 

이리저리 헤매며 시간낭비를 했는데 MongoDB 공식문서에 아주 잘 설명되어 있었다. 다음부턴 꼭 공식부터 확인하는 것으로 하자. ^^ 

 

 

 

환경

- windows 10

- ubuntu 22.04

 

 

 

ec2 ubuntu 22.04에 MongoDB 6.0 설치하기

1. 관리자 계정 접속

sudo su

2. public key import하기

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -

apt-key는 deprecated되었다는 WARN이 뜰 것이다. 일단 성공적인 설치가 먼저기에 넘어갔다.

 

3.  MongoDB를 위한 list파일 생성하기

이 부분이 다소 곤혹스러웠다만 MongoDB 공식문서 https://www.mongodb.com/docs/v6.0/tutorial/install-mongodb-on-ubuntu/ 에서 정답을 찾을 수 있었다. 

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse

 

4. local package 데이터베이스 reload하기

sudo apt update

5. MongoDB 패키지 설치하기

sudo apt install mongodb-org

 

6. MongoDB 실행하기 + status 확인하기

systemctl start mongod
systemctl status mongod

 

정상적으로 실행되었다면 다음과 같이 active한 상태가 확인된다.

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2023-12-09 18:20:21 UTC; 3s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 38164 (mongod)
     Memory: 102.7M
        CPU: 827ms
     CGroup: /system.slice/mongod.service
             └─38164 /usr/bin/mongod --config /etc/mongod.conf

 

 

MongoDB 외부 접속 허용하기

1. 설정 파일 진입

sudo nano /etc/mongod.conf

 

2. bindIp 0.0.0.0으로 수정

나는 이미 수정한 상태지만 설치 후 최초로 설정파일을 열어보면 bindIP가 127.0.0.1로 되어있을 것이다. 이 부분을 0.0.0.0으로 수정해준다.

 

 

 

MongoDB 외부 접속을 위한 사용자 계정 등록

mongosh

mongo shell에 접속하는 명령어는 mongosh다. 6.0버전 이후로는mongo가 아닌 mongosh를 이용해야 한다. 직전까지 사용했던 4.4에서는 mongo로 접속할 수 있었다.

 

shell 접속 후 use admin을 치면 switched to db admin이 뜬다. 여기서 사용자를 등록해주면 된다. 제대로 등록됐다면 ok : 1이 뜰 것이다.

test>use admin
switched to db admin
admin> db.createUser({user:"원하는 유저네임", pwd:"원하는 패스워드", roles:["root"]});
{ ok: 1 }
admin> exit

shell을 빠져나온 후 재시작해준다.

service mongod restart

 

mongosh를 입력해서 다시 shell에 접속한 뒤 생성한 사용자를 확인할 수 있다.

admin> db.getUsers()
switched to db admin
  users: [
    {
      _id: 'admin.~~',
      userId: UUID('~~'),
      user: '유저네임',
      db: 'admin',
      roles: [ { role: 'root', db: 'admin' } ],
      mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
    }
  ],
    ok: 1

 

 

생성한 사용자 계정으로 mongoDBcompass에서 접속하면 편리하게 사용할 수 있다. 

 

 

 

 + 설치 과정에서 발생했던 에러

Malformed entry 1 in list file

E: Malformed entry 1 in list file /etc/apt/sources.list.d/mongodb-org-6.0.list ([option] not assignment)
E: The list of sources could not be read.

에러의 원인으로 지목된 파일을 열어봤다.

sudo nano /etc/apt/sources.list.d/mongodb-org-6.0.list

1번째 줄에 이상한 내용이 있었다. 내가 앞서 list를 생성하기 위해 쳤던 명령어의 일부였는데, 대체 어쩌다 왜 list파일 내에 명령어가 들어가있던 건지는 모르겠다.

해당 내용을 지우니 문제가 해결되었다.

 

 

 

 

 

 

참고

https://www.mongodb.com/docs/v6.0/tutorial/install-mongodb-on-ubuntu/

https://www.mongodb.com/community/forums/t/how-to-install-mongodb-6-0-on-ubuntu-22-04/176976/7