티스토리 뷰
1. 설치환경은 CentOS7.
2. 설치목적은 테스트 환경 세팅.
개발 서버라 마음놓고 설치하며 시건방을 떨면서 글을 쓰다가
엄청나게 삽질하고 겸허함을 담아 고쳐쓴다 ㅠㅠ
3. 설치방법
1) 설치 추천 사이트 : https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
사이트에서 버전을 선택하여 따라하면 된다. 왼쪽 상단에 보면 버전을 선택할 수 있는 select가 있다.
4.2.3 버전을 설치해 보았다. 따라하다 보면 응? 쉬운데? 이러면서 건방을 떨게 된다....
2) 이 곳은 서비스 등록까지 알려준다! 게다가 user 등록까지! : http://wikidocs.net/16278
다만 이 곳은 3버전을 설치한다. 설치하면서 비교해 본 바로는 차이점이 거의 없으나
찜찜하신 분은 1)의 사이트만 참고하시길 바란다.
4. 주의사항 (... 삽질의 기록)
1) repository 주소가 없는 주소(404)라는 에러메시지를 받을 수도 있다.
나의 경우 잘못된 정보를 담은 글을 보고 따라 했다가 yum install이 안되어서
3-1)의 사이트를 보면서 다시 진행했다.
그런데 캐시가 남아있었는지 자꾸 repository 주소가 없다는 에러메시지가 뜨면서 역시 yum install에 계속 실패했다. ㅠㅠ
https://unix.stackexchange.com/questions/369620/centos-7-yum-wont-install-mongodb
위 사이트에서 안내하는 대로
기존의 mongodb repo 문서를 완전히 제거하고 yum clean all 을 실행하여 캐시를 제거하여 깨끗해진 상태에서
다시 처음부터 진행하면 yum install을 할 수 있다.
2) 포트 변경
서칭한 모든 글들이 /etc/mongod.conf 파일에서 port만 변경해주면 된다고 했다.
나는 그대로 믿고 포트를 변경하고 mongod.service를 재시작했다. 이것이 악몽의 시작이었다.
mongod.service가 재시작이 되지 않았다. 서칭을 한다. 수정한다. 재시작한다. 실패한다. 다시 서칭한다. 무한반복...
급기야 .lock 파일까지 건드리고... (여기가 끝이 아니지만 이쯤에서 그만하겠다.)
나중에 알게 된 원인은 개발 서버에 SELinux가 돌고 있었기 때문이었다.ㅠㅠ
원래는 mongod.conf 파일에서만 수정해도 포트 변경이 가능한데,
SELinux가 활성화되는 경우에는 3-2)의 사이트에서 한 것처럼 아래의 명령어를 실행하여 SELinux의 mongodb 포트도 바꾸어 주어야 한다.
$ semanage port -a -t mongod_port_t -p tcp 변경한포트
(명령어를 실행했는데 semanage 명령어가 없다고 곧바로 semanage 설치를 서칭하지 않기를 바란다.
설치하는 순간 서버에서 돌고 있는 다른 서비스의 포트에도 영향을 주기 때문이다.
semanage를 설치하면 다른 서비스들도 일일이 포트를 등록해 주어야 한다.)
3) 다시 시작하고 싶어서 제거하고 다시 yum install하는 데에 nothing이 나올 때
서버마다 사정이 다르니 원인이 다르겠지만
나의 경우에는 3-1)을 너무 충실하게 따라서 /etc/yum.conf 파일에 추가한 구문이 원인이었다.
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
이 구문을 제거한 후 yum install을 시도하니 성공했다.
4) 깨끗하게 지우고 싶을 때 참고했다. (tmp 폴더의 파일도 지워야 했는지는 잘 모르겠다...)
https://stackoverflow.com/questions/8766579/uninstalling-mongo
나와 같은 아픔을 겪지 마시길.... Good luck!