모두의연구소 IoT연구실 <모두의IoT>에서 진행중인 발표자료를 공유해 드립니다.


작성자 : 구현모 연구원님

날짜 : 2016년 03월 31일

내용요약 : 모두의IoT에서 사용할 데이터베이스인 MongoDB 를 라즈베리파이에 설치하기


모두의연구소 페이지와 커뮤니티 그룹에 오시면 더 많은 정보를 만나보실 수 있습니다.

모두의연구소 페이지 https://www.facebook.com/lab4all

모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs


 

NOSQL redis MongoDB, Mysql

http://goo.gl/0uZDo9

 

MongDB 설명

http://goo.gl/jf45RF

 

NO SQL CAP Theorem

https://blog.outsider.ne.kr/519

 

binary json bson

http://ohgyun.com/421

 

 

MONGODB 설치 및 nodejs 연동 가이드

 

라즈베리 파이에 Node.js 최신버전 설치하기

http://mykumi.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-NodeJS-%EC%A0%9C%EC%96%B4

 

라즈베리파이 + 아두이노 + nodejs

http://node-arm.herokuapp.com/

 

1) Node 최신 패키지 다운로드

$ sudo wget http://node-arm.herokuapp.com/node_latest_armhf.deb

2) 패키지 설치

$ sudo dpkg -i node_latest_armhf.deb

 

라즈베리파이 SD카드 용량늘리기 4GB이상

http://www.rasplay.org/?p=2837

 

 

sudo raspi-config

 



 

라즈베리파이 MONGODB설치

http://cafefriend.net/blog/?p=54

http://wowan.tistory.com/58

 

sudo apt-get install mongodb

 

MONGODB 실행

http://hellogk.tistory.com/127

 

 

[root@localhost mongodb]# cd config/

[root@localhost config]# vi mongodb.conf

dbpath=/usr/local/mongodb

logpath=/usr/local/mongodb/log/mongodb.log

logappend=true

port=5050

verbose=true

fork=true

rest=true

 

[root@localhost config]# /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/config/mongodb.conf

 

MONGODB 이해

https://mylko72.gitbooks.io/node-js/content/chapter11/intro.html

http://mobicon.tistory.com/138

http://alnova2.tistory.com/606

몽고DB 명령 이해

  • help [option]: 문법에 대한 도움말을 보여준다option 인수로 도움말이 필요한 특정 영역을 지정할 있다.
  • use [database] : 현재 데이터베이스 핸들을 변경한다. 데이터베이스 작업은 현재 데이터베이스 핸들에서 처리된다.
  • show [option] : option 인수에 따라 목록을 보여준다option 값으로 다음 값들이 있다.

·          

    • dbs : 데이터베이스의 목록을 출력한다.
    • conllections : 현재 데이터베이스 컬렉션의 목록을 출력한다.
    • profile : 1밀리초 이상 걸린 가장 최근의 **system.profile` 항목들을 출력한다.
    • log [name] : 로그인한 내역을 출력한다. name 디폴트는 global 이다.
  • exit : 데이터베이스를 종료한다.

몽고DB 메소드 이해

다음은 메소드의 몇가지 예이다.

  • load(script): 내부의 자바스크립트 파일을 로드하고 실행한다.
  • UUID(string): 32-바이트 16진수 문자열을 BSON UUID 변환한다.
  • db.auth(username, password): 현재 데이터베이스에 대해 접속 가능 여부를 확인한다.

네이티브 메소드 전체 목록은 다음 URL에서 확인한다.

[명령어]

 

use test

show collections

 

collection 생성

db.createCollection("person",{"name":"hmkoo"})

collection 삭제

col1=db.getCollection("person")

col1.drop()

show collections

 

 

MONGODB node.js 연결

 

http://bcho.tistory.com/889

http://okky.kr/article/260877

http://mobicon.tistory.com/197

 

 

 

 

최신 페키지로 업데이트 하자.

sudo apt-get update

sudo apt-get upgrade

 

빌드하기 위해 필요한 라이브러리들을 설치하자.

sudo apt-get install build-essential libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev scons libboost-all-dev python-pymongo git

 

git에서 소스를 체크아웃하자

git clone https://github.com/skrabban/mongo-nonx86

 

체크아웃한 디렉토리로 이동

cd mongo-nonx86

 

컴파일을 하자.

sudo scons

 

설치를 하자

sudo scons --prefix=/opt/mongo install

 

유저를 추가하고 퍼미션 설정을 하자

sudo adduser --firstuid 100 --ingroup nogroup --shell /etc/false --disabled-password --gecos "" --no-create-home mongodb

 

로그 파일 저장을 위해 디렉토리를 생성하자

sudo mkdir /var/log/mongodb/

 

로그파일에 퍼미션을 설정하자

sudo chown mongodb:nogroup /var/log/mongodb/

 

 

상태값을 위한 디렉토리 생성 및 퍼미션을 설정하자

 

sudo mkdir /var/lib/mongodb

sudo chown mongodb:nogroup /var/lib/mongodb

 

init.d 스크립트를 복사하자

sudo cp debian/init.d /etc/init.d/mongod

 

config 파일을 복사하자

sudo cp debian/mongodb.conf /etc/

 

실행파일을 소프트링크로 걸자.

sudo ln -s /opt/mongo/bin/mongod /usr/bin/mongod

 

스크립트 퍼미션 설정하자

sudo chmod u+x /etc/init.d/mongod

sudo update-rc.d mongod defaults

 

서비스를 시작해보자

sudo /etc/init.d/mongod start

 

mongo 쉘을 심볼릭 링크를 걸자

sudo ln -s /opt/mongo/bin/mongo /usr/bin/mongo

 

쉘을 시작해보자

pi@raspberrypi ~ $ mongo

MongoDB shell version: 2.1.1-pre-

connecting to: test

 

 

 

 

 

 


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

+ Recent posts