º OS : ubuntu-20.04.3-server
º mongodb tutorial(공식 문서)
https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-ubuntu/
1. mongodb 설치 : 참고 링크
우분투 버전이 20.04이므로 이에 맞는 것을 설치.
https://www.walterz.net/2020/12/30/3160/
2. mongodb 시작하기
https://velog.io/@seungsang00/Ubuntu-MongoDB-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-Ubuntu-20.04
mongodb 삭제하기(우분투)
º mongodb 명령어
> sudo systemctl start mongod
> sudo systemctl status mongod
> sudo systemctl stop mongod
> sudo systemctl restart mongod
> mongo : 접속해서 작업 시작
> exit : 종료 명령어 (mysql은 quit이 가능한데, 여기는 quit 안먹힘)
3. 우분투 mongodb datadir 경로 변경; default 위치는 /var/lib/mongodb
4. window에 robo 3T 설치(client program)
https://truth1018.tistory.com/4#google_vignette
mongodb 외부접속 허용 (mongodb config 변경)
> sudo vi /etc/mongod.conf
이후 여러 항목중 network interface와 security 항목을 아래와 같이 수정한다.
이 때, 정해진 간격을 맞춰서 수정해야 한다. <- 이것을 하지 않아서 mongodb 실행이 계속 안됬었음
# mongod.conf
# ...
net:
port: 27017
bindIp: 0.0.0.0
# bindIp: 127.0.0.1
bindIP: 0.0.0.0 <- 이렇게 간격을 맞추지 않고 수정하면 나중에 mongo 실행 시 오류 발생함
# ...
security:
authorization: enabled
# ...
5. 이후 robo 3T에서 mongodb 서버로 접속하려 하니
"Warning: listdatabases failed ..." 문구가 발생하며 접속이 되지 않았다.
해결 방법 : https://github.com/Studio3T/robomongo/issues/1566
Connection에서 authentication 부분으로 들어가 root계정 id 및 pw 등록하였다.
이후 연결 성공.
22.01.27 서버에서 mongodb 재설치 진행 이후 오류 발생
sudo systemctl status mongod 명령어로 'active(running)'인 것을 확인하였으나, 이후 'mongo' 실행 시 오류 발생
Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException ...
이를 해결하기 위해..
1. mongod --dbpath /data/mongodb
2. vi /etc/mongod.conf 에서 bindIP 주소를 잠시 127.0.0.1로 변경
3. sudo service mongodb restart
4. mongod --repair 후 재실행
5. /data/mongod(/etc/mongod.conf의 dbPath)로 이동해서 mongod.lock 파일 제거
구글링을 통해 찾은 이 방법들을 사용해 보았으나 모두 해결되지 않음.
해결책으로 "서버 설정 문서를 참고해서 --port 옵션을 추가해서 접속(port 지정)"이 나왔음.
기존의 mongodb default port number는 27017인데, 이것을 다른 포트 숫자로 변경한 뒤, 지정하지 않아서 실행이 되지 않았던 것 같다.
vi /etc/mongod.conf에서 port번호를 변경하였는데도, 오류가 뜬다. 아직 이 해결 방안은 찾지 못함.
해결 방안
1 : mongo --host 127.0.0.1:바뀐포트번호 : 입력하면 정상적으로 실행되나, 재실행시 default port number가 다시 27017로 돌아가는 문제 발생(일회성 명령어인듯)
2. mongo --port 바뀐포트번호 : 이거 역시 일회성 명령어인듯. 실행은 된다.
mongodb : Authentication failed 오류
이 과정을 수행하니 정상적으로 robo 3t에서도 서버로 접속되는 것을 확인할 수 있었다.
1. vi /etc/mongod.conf에서
security:
authorization: disabled
2. mongodb 재시작
sudo systemctl restart mongod
3. mongo 실행 후, 계정과 비밀번호 생성(root 권한 부여)
> use admin
> db.createUser({ user:"유저아이디", pwd:"유저비밀번호", roles: [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "dbAdminAnyDatabase", "db" : "admin" }, { "role" : "readWriteAnyDatabase", "db" : "admin" } ] })
> db.auth("유저아이디", "유저비밀번호")
잘 생성되었다면 1 리턴, 그렇지 않으면 0 리턴
4. vi /etc/mongod.conf에서
security:
authorization: enabled
5. mongodb 재시작
sudo systemctl restart mongod
mongodb 튜토리얼 참고 사이트
mongodb 명령어
show dbs
data 전체 삭제 : db.test.remove({});
data 전체 조회 : db.test.find();
'학부연구생' 카테고리의 다른 글
Ubuntu 서버 종료 및 재시작 절차 (1) | 2024.01.25 |
---|---|
Ubuntu 20.04] MongoDB 설치 및 기본 명령어 (0) | 2023.06.13 |
Ubuntu] Screen 명령어 (0) | 2023.06.09 |
1. 우분투(ubuntu) 서버에 mysql 설치 및 각종 에러 해결 방법 (0) | 2021.10.15 |