블로그 이미지
BJcomm
bjcomm

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

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
12-22 00:00

centos에 mongodb 설치하기

2016. 3. 22. 18:04 | Posted by bjcomm

대표적인 nosql인 mongodb를 centos에 설치해봅니다.


yum으로 간단하게 설치하기 위해서 레파지토리를 추가해야하는데요



설치하려는 centos가

64비트인경우에는

[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1


32비트인경우에는


[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686
gpgcheck=0
enabled=1



이 내용을 담아


# vi /etc/yum.repos.d/10gen.repo

이 경로에 파일을 생성합니다.


이제 간단히 yum으로 설치해봅니다


mongo-10gen과 mongo-10gen-server 이렇게 두개를 설치합니다.


# yum install mongo-10gen mongo-10gen-server


설치끝! 참쉽죠?


mongodb의 설정파일은 /etc/mongod.conf 경로에 있고

init스크립트는 /etc/rc.d/init.d/mongod 에 있습니다.

데이터파일은 /var/lib/mongo 경로에 저장되고

로그파일은 /var/log/mongo 여기에.



mongdb의 구동은 뭐 여느 서비스랑 같습니다.


# service mongod start
# service mongod stop
# service mongod restart



시스템 부팅시에 자동으로 실행되도록 하려면 요렇게


# chkconfig mongod on



http://호스트명:28017 포트로 접속하면 웹브라우저를 통해 상태 화면을 볼수 있습니다.






그런데 이렇게 누구나 접속해서 상태를 볼수 있으면 당연히 안되겠죠?


비밀번호를 설정해야합니다.


비밀번호도 없고, 방화벽도 세팅되어 있지 않다면 mongodb는 누구나 접속할수 있는 보안 무방비 상태에 놓이게 됩니다.

보안을 위해 admin에 비밀번호를 세팅해주세요.

# mongo

명령어로 mongodb에 접속합니다.

> use admin
> db.addUser("admin", "비밀번호")
> exit


비밀번호가 세팅되었어요.



방금 생성한 계정은 시스템 어드민 계정이고 생성한 계정은


> db.system.users.find()


명령어를 통해 확인할 수 있습니다.



mongodb는 생성하는 DB별로 사용자를 설정할수 있습니다.


DB별로 사용자를 관리하는것이 보안에 좋습니다.



> use 디비명


명령어를 통해서 해당 DB에 접속하게 되는데


각 DB마다 db.addUser 명령어를 통해서 계정을 생성하여 관리를 해주시면 됩니다.





인증모드를 활성화하여 데몬을 구동하려면

/etc/mongod.conf 환경설정파일을 열어

auth = true  를 추가해줍니다.


아마도 주석처리가 되어있을테니 주석을 제거해주셔도 좋습니다.



그리고 재실행하면 auth가 활성화됩니다.



이제 콘솔상에서 접속할때는


> use admin


명령어를 입력하고


> db.auth("admin","비밀번호")


명령어를 추가로 입력해야지만 이후의 명령어에 대한 정상적인 결과값을 얻을 수 있습니다.



그리고 웹 인터페이스도 마찬가지로 아이디와 비밀번호를 입력하도록 설정됩니다.




참고 : http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/