mongoDB 설치 및 DB 생성

김명기·2023년 7월 11일

해결할것(관련 없을수도...)
https://www.mongodb.com/community/forums/t/mongod-service-main-process-exited-code-exited-status-1-failure/113739

mongoDB 설치

  • mongoDB 저장소 활성화, 저장소 GPG 키를 가져오기, mongoDB 설치
    1. Install MongoDB Community Edition on Ubuntu
    2. Issue Tracking
    - 현상 : mongoDB Ubuntu 최초 실행시 오류 발생
    오류내용 : mongod.service conrol process exited code=exited **status=14**
    - 원인 : 최초 설치 시 몽고디비 구성 파일과 mongodb-<포트번호>.lock 파일의 권한이 몽고디비로 설정되어 있지 않아 생기는 문제
    - 해결 : 몽고디비 파일 권한을 mongodb 로 변경
	$ chown -R mongodb:mongodb /var/lib/mongodb
	$ chown mongodb:mongodb /tmp/mongodb-27017.sock

사용자 계정 및 DB생성

  • mongosh로 local에서 접속
  	$ mongosh
    # MongoDB 4.x 이후부터 MongoDB는 자신들의 데비안 패키지를 제공하면서 그 이름을 mongodb-org-server, mongodb-mongosh, mongodb-cli 로 명칭
    # client command 'mongo'는 두 가지 명령어 'mongocli', 'mongosh'로 나뉜다.
  • root 계정 만들기
    인증 없이 익명으로 로그인 후 처음으로 관리자 계정 생성 필요, admin 데이터베이스에서 진행
  	$ mongosh
    
  	$ use admin
  	$ db.createUser({ user: 'admin', pwd: 'password', roles: ['root'] })
    $ db.system.users.find().pretty() #사용자확인
    # or db.getUsers()
    
    $ sudo systemctl restart mongod #mongo daemon 재시작

==========================================================
!인증활성화되면 mongod 가 정상동작 안하여 현재 비활성화 시킨 상태

  • 인증 모드 설정
    root 계정 생성 이후에 설정 가능
  1. keyfile생성
	# <path-to-keyfile> : /etc/mongodb.key
    sudo openssl rand -base64 755 > <path-to-keyfile> &&\
    sudo chown mongodb:mongodb <path-to-keyfile> &&\
    sudo chmod 400 <path-to-keyfile> &&\
    sudo chcon system_u:object_r:mongod_var_lib_t:s0 <path-to-keyfile> &&\ # 실행안함
    sudo systemctl restart mongod
    
    # /etc 디렉터리의 권한때문에 명령어가 오류 발생할 경우,
    # sudo touch /etc/mongodb.key #파일생성한 후
    # sudo chmod 777 변경후,
    # 위의 명령어를 하나씩  수동으로 실행 후 파일 권한 원복할 것
  1. 인증 활성화
	sudo vi /etc/mongod.conf #설정파일
	vi editor로 위의 파일내용 수정
	security:
    authorization: enabled
    clusterAuthMode: keyFile
    keyFile : /etc/mongod.key
	sudo systemctl restart mongod #mongodb 재시작

인증모드가 되지 않을때

======================================================
3. 생성된 사용자로 재접속

  $ mongosh -u admin -p
  test> show dbs
    ## 또는 ##
  $ mongosh -u admin -p --authenticationDatabase admin
  test> show dbs
  • Database 생성 use
use mms
mms> # 생성됨

GUI Client 사용하기

  • MongoDB Compass url : compass(GUI)

  • MongoDB Compass .deb download

wget https://downloads.mongodb.com/compass/mongodb-compass_1.38.2_amd64.deb
sudo apt install ./mongodb-compass_1.38.2_amd64.deb #파일위치에서 설치

참고
(MongoDB 계정과 권한)[https://hoing.io/archives/8998]

MongoDB Compass로 외부 MongoDB로 접속하기

참고1 https://nerogarret.tistory.com/13
참고2 https://intelloper.tistory.com/41
1. 환경

로컬 컴퓨터(Compass가 깔려있는 나의 컴퓨터) OS: Ubuntu 20.04 LTS
외부 컴퓨터(MongoDB가 깔려있는 외부 컴퓨터) OS: Ubuntu 18.04.6 LTS
연결 방식: SSH

  1. ssh를 통해 외부 컴퓨터에 접속한 뒤, mongodb의 설정파일을 수정해줍시다. 각자의 외부 컴퓨터에 접속한 뒤,
    mongod.conf의 net bindIp 정보를 수정
$ sudo vi /etc/mongod.conf
# bindIp: 127.0.0.1 #로컬호스트로만 접속
# bindIp: 127.0.0.1, 123.123.123.123 #추가IP도 접속 가능 
# bindIp: 0.0.0.0 # 누구든 접속 가능
profile
꾸준함을 이길수 있는것은 없다.

0개의 댓글