Install MongoDB Community Edition on Ubuntu — MongoDB Manual docs.mongodb.com MongoDB public GPG Key Import * 오류 시 패키지 설치 후 다시 진행 MongoDB 저장소 등록 (18.04) MongoDB 저장소 등록 (16.04) 패키지 DB 업데이트 최신 버전 설치 * 버전 지정 서비스 시작 서비스
중지 패키지 삭제 패키지 삭제 (환경파일까지)설치 절차
삭제 절차
Data 와 Log 삭제
sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb기타
설치된 패키지 확인
sudo apt list --installed | grep mongomongodb/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed] mongodb-clients/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,automatic] mongodb-server/bionic,bionic,now 1:3.6.3-0ubuntu1 all [installed,automatic] mongodb-server-core/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,automatic]1. 몽고DB의 public GPG key 주입
ubuntu@dev:~$ wget -qO - //www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - OK2. 몽고DB를 위한 리스트 파일 생성
ubuntu@dev:~$ echo "deb [ arch=amd64,arm64 ] //repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list3. 로컬 패키지 데이터베이스 갱신
ubuntu@dev:~$ sudo apt-get update4. 몽고DB 설치
ubuntu@dev:~$ sudo apt-get install -y mongodb-org5. 몽고 서비스 실행
ubuntu@dev:~$ sudo service mongod start6. 관리자 계정 추가
MongoDB에 다시 접속하여 관리자 계정을 추가한다.
$ mongo>use admin db.createUser({ user: “유저아이디" , pwd: “패스워드", roles: [‘root’] })uncaught exception: Error: couldn't add user: command createUser requires authentication :해당 오류가 뜬다면 이는 /etc/mongod.conf에서 security.authorization이 true로 설정되어 있기 때문이었다.
책에서 사용하던 버전에서는 원래 주석처리되어 있었는지 이후에 추가하도록 되어있는데, 이번에 설치한 4.2.9 버전에서는 처음부터 작성되어 설치되어서 문제가 되었다.
잠깐 주석 처리하고 sudo service mongod restart하니 정상적으로 admin 사용자를 추가할 수 있었다
7. 인증 설정
MongoDB에 접속할 때 인증과정이 이루어지도록 설정파일을 수정한다.
우선 MongoDB를 종료한 후 수정을 한다.
ubuntu@dev:~$ sudo service mongod stop ubuntu@dev:~$ sudo vim /etc/mongod.confmongod.conf 설정파일의 security 항목의 주석을 해제한 후 그 하단에 authorization: enabled 를 추가한다.
security: authorization: enabled8. 인증 접속
MongoDB를 다시 실행한 후 등록한 계정 정보로 접속을 시도해 보자.
ubuntu@dev:~$ sudo service mongod start ubuntu@dev:~$ mongo admin -u test -p test12349. 외부 접속 설정
MongoDB는 기본적으로 로컬호스트에서만 접속이 가능하도록 설정되어 있다. 외부 접속을 위해서는 net 항목의 bindIp 항목을 0.0.0.0으로 변경한다. (포트도 변경 가능)
net: port: 27017 bindIp: 0.0.0.010. 몽고 DB 삭제 방법
sudo apt-get remove mongodb-org sudo apt-get purge mongodb-org* sudo rm -rf /var/log/mongodb sudo rm -rf /var/lib/mongodb이번 글에서는 MongoDB를 설치하는 방법에 대해서 공유합니다.
현재 최신 버전인 mongoDB 4.4를 설치합니다.
리눅스(ubuntu 18.04)
하단에 있는 mongoDB의 공식 사이트를 설치 방법을 참조하시는 것이 좋습니다.
설치 하기
// ubuntu 18.2 & mongoDB 4.4 // mongoDB의 public key를 등록합니다. wget -qO - //www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - // mongoDB의 4.4를 생성하기 위한 리스트 파일 설정 echo "deb [ arch=amd64,arm64 ] //repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list // 로컬 패키지 데이터 베이스 업데이트 sudo apt-get update // 최신버전의 mongoDB 설치 sudo apt-get install -y mongodb-org // 서비스 시작 sudo systemctl start mongod # mongoDB 종료 mongo localhost/admin -u <유저명> -p <비밀번호> > use admin # localhost로 접속해야 됨 > db.shutdownServer();삭제 방법
// apt로 설치된 mongoDB 확인 sudo apt list --installed | grep mongo // 제거 ex) sudo apt remove mongodb-server sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb참조
//docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
공 통
몽고 디비 설정 파일
//docs.mongodb.com/manual/reference/configuration-options/index.html
몽고 DB의 설정 파일은 YAML 포맷으로 되어 있습니다.
경 로
플랫폼 | 파일 위치 |
Linux | /etc/mongod.conf |
macOS | /usr/local/etc/mongod.conf |
Windows | <install directory>\bin\mongod.cfg |
중요 옵션
자주 사용하는 옵션
타입 | 기본값 | 설명 |
net.bindIp | localhost | ip address 정보 ex) 0.0.0.0 |
net.port | 27017 - mongod | MongoDB의 포트번호 |
processManagement.fork | false | 백그라운드에서 실행하도록 mongod에 데몬 모드를 설정합니다. |
processManagement.pidFilePath | 경로 | mongod의 프로세스 ID를 저장할 경로를 지정합니다. |
processManagement.timeZoneInfo | /usr/share/zoneinfo | |
replication.enableMajorityReadConcern | true | Read Concern은 아래와 같은 타입이 있음 |
replication.oplogSizeMB | 사용 가능한 disk의 5% 공간 | replication 작업을 위한 로그 사이즈의 최대 크기 설정 (MB단위) |
replication.replSetName | mongod 가 속한 replication 셋트의 이름입니다. | |
systemLog.destination | "file" or "syslog" | file : systemLog.path 경로에 파일을 기록합니다. |
systemLog.logRotate | rename | rename : 로그 파일의 이름을 변경합니다. |
systemLog.path | /var/log/mongodb/mongod.log | 로그가 기록되는 경로 |
systemLog.quiet | false | mongos 또는 mongod를 조용한 모드로 실행합니다. |
systemLog.syslogFacility | user | syslog에 기록되는 메시지를 설정 |
systemLog.traceAllExceptions | false | 디버깅을 위한 자세한 정보를 출력 |
systemLog.verbosity | 0 | 로그 상세 수준을 설정합니다. |