학교 수업을 진행하던 도중에 제가 소유한 라즈베리파이 3B 모델 최신버전에서 몽고DB를 설치하기 위한 방법을 찾다가 성공하게 되어서 글로 기록을 남기기로 했습니다.
라즈베리파이 2022.04 Ver | mongodb 4.4.8Ver 설치 과정
설치 완료 사진 (2022-05-10 : 03:25)
이 글은 해외 라즈베리파이 개발자 Andy Felong 의 글을 참고했습니다.
https://andyfelong.com/2021/08/mongodb-4-4-under-raspberry-pi-os-64-bit-raspbian64/
설치 시작
진행 모델 : Raspberry Model 3B
OS : Raspberry Pi OS (64-bit)
1. mongodb_4.4.8.gz 파일 설치 후 압축 해체, 실행 파일 /usr/bin으로 이동, 소유자와 그룹 루트권한 부여 mongodb_4.4.8.gz → https://andyfelong.com/downloads/raspbian_mongodb_4.4.8.gz
tar zxvf raspbian_mongodb_4.4.8.gz # 4.4.8.gz 압축풀기
sudo mv mongo* /usr/bin # 실행파일 /usr/bin으로 이동
sudo chown root:root /usr/bin/mongo* # 소유자와 그룹 루트 권한 부여
sudo chmod 755 /usr/bin/mongo* # 실행 가능한 상태 확인
2. mongodb 사용자 생성
sudo adduser --no-create-home --disabled-login mongodb
3. /etc/mongodb.conf 구성 파일 생성 후 텍스트 작성
# vi와 nano중에 편한 에디터 사용
sudo vi /etc/mongodb.conf // vi사용 ( 저장 -> :wq )
sudo nano /etc/mongodb.conf // nano사용 ( 저장 -> Ctrl + X )
3-1. mongodb.conf 작성
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /data/db
journal:
enabled: true
# engine:
# wiredTiger:
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:
4. 로그 파일 및 데이터 디렉토리 생성, 소유자 및 그룹 변경
sudo mkdir -p /var/log/mongodb/
sudo chown -R mongodb:mongodb /var/log/mongodb/
sudo mkdir /data
sudo chmod 777 /data
sudo mkdir -p /data/db
sudo chown -R mongodb:mongodb /data/db
5. mongod 프로세스를 중지/시작하는 systemctl 서비스 파일을 생성 후 아래 텍스트 추가
sudo vi /lib/systemd/system/mongodb.service
# 위 내용 처럼 nano도 가능
5-1. mongodb.service 작성
[Unit]
Description=An object/document-oriented database
Documentation=man:mongod(1)
After=network.target
[Service]
User=mongodb
Group=mongodb
# Other directives omitted
# (file size)
LimitFSIZE=infinity
# (cpu time)
LimitCPU=infinity
# (virtual memory size)
LimitAS=infinity
# (locked-in-memory size)
LimitMEMLOCK=infinity
# (open files)
LimitNOFILE=64000
# (processes/threads)
LimitNPROC=64000
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf
[Install]
WantedBy=multi-user.target
6. 이제 mongodb 서비스(mongod)를 시작/중지 할 수 있습니다.
(시스템을 재부팅하기 전에 정상적으로 중지하는 것을 잊지 마십시오)
$ sudo service mongodb start # 실행
$ sudo service mongodb status # 상태
# 상태 예시
● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2021-08-07 11:27:26 PDT; 1 day 1h ago
Docs: man:mongod(1)
Main PID: 1771 (mongod)
Tasks: 33 (limit: 4164)
CGroup: /system.slice/mongodb.service
└─1771 /usr/bin/mongod --quiet --config /etc/mongodb.conf
7. 이제 MongoDBF에 대한 대화형 JavaScript 쉘 인터페이스인 mongo 실행 가능
$ mongo // mongo실행
MongoDB shell version v4.4.8
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("328da768-3ae6-4638-9df3-5fb4d32156ff") }
MongoDB server version: 4.4.8
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
8. 라즈베리파이 버전 확인 및 설치한 mongodb 버전 확인
uname -a // 라즈베리파이 설치 OS 버전 확인
mongod --version // mongodb 설치 버전 확인
끝!