MongoDB 오류 번호 111에 대한 연결이 거부되었습니다.
Ubuntu 12.04 LTS 및 MongoDB 인스턴스(서비스가 실행 중이고 CAN이 로컬로 연결됨)를 실행하는 Linode 서버가 외부 소스에서 연결할 수 없습니다.
IP 테이블에 다음의 2개의 룰을 추가했습니다.< ip address >는, FROM 에 접속하는 서버입니다(이 MongoDB 레퍼런스에 기재되어 있습니다).
iptables -A INPUT -s < ip-address > -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d < ip-address > -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
또한 IP 테이블에는 27017에서 <ip address>로의 접속을 허용하는 규칙이 나타나는데, 다음과 같은 명령어를 사용하여 <ip address>에서 mongo 데이터베이스로의 접속을 시도하면 다음과 같이 됩니다.
mongo databasedomain/databasename -u username -p password
다음의 에러가 표시됩니다.
2014-07-22T23:54:03.093+0000 warning: Failed to connect to databaseserverip:27017, reason: errno:111 Connection refused 2014-07-22T23:54:03.094+0000 Error: couldn't connect to server < ip address >:27017 (databaseserverip), connection attempt failed at src/mongo/shell/mongo.js:148 exception: connect failed
어떤 도움이라도 감사합니다!!!감사합니다!!!
여러분 도와줘서 고마워요!
알고보니 그건 통합 가능한 갈등이었어포트가 열려 있는 것을 나타내는2개의 규칙(그 결과 포트가 닫혀 있습니다).
그러나 aka의 코멘트 중 하나와 manu2013년의 코멘트 중 하나는 충돌이 아니었더라면 제가 직면했을 문제였습니다.
그래서! 항상 편집하는 것을 잊지 마세요./etc/mongod.conf파일링 및 설정bind_ip = 0.0.0.0외부와 연결되도록 하기 위해서요
또한 mongo가 원하는 포트에 대해 iptable에 모순되는 규칙이 없는지 확인하십시오(iptables를 올바르게 설정하려면 mongodb 사이트 링크를 참조하십시오).
다음을 시도해 보십시오.
sudo rm /var/lib/mongodb/mongod.lock
sudo service mongodb restart
이 명령으로 문제가 해결되었습니다.
sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair
sudo service mongod start
sudo service mongod status
프록시의 배후에 있는 경우는, 다음과 같이 합니다.
export http_param="flash://flash:password@company.com:port/"
export https_param="syslog://param:password@company.com:port/"
참고 자료: https://stackoverflow.com/a/24410282/4359237
Ubuntu Server 15.04 및 16.04의 경우 이 명령어만 실행하면 됩니다.
sudo apt-get install --reinstall mongodb
나는 없었다./data/db디렉토리로 이동합니다.제가 하나 만들어서chmod 777허가가 나에겐 통했어
저는 /var/lib/mongodb와 /tmp/mongodb-27017.sock의 소유권을 mongodb로 변경하는 것이 최선의 선택이었습니다.
다음 작업을 수행합니다.
sudo chown -R mongodb:mongodb /var/lib/mongodb
그 후:
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
다음으로 mongodb 서버를 기동 또는 재기동합니다.
sudo systemctl start mongod
또는
sudo systemctl restart mongod
상태를 확인합니다.
sudo systemctl status mongod
다른 옵션은 다음과 같이 데이터베이스를 복구하는 것입니다(주의: db0 디렉토리를 먼저 작성해야 합니다).
mongod --dbpath /var/lib/mongodb/ --repairpath /var/lib/mongodb/db0
이것은 실가동 환경에서도 사용할 수 있는 옵션입니다.
저도 같은 문제가 있었어요.dbpath에 디렉토리를 만듭니다.제 경우 /data/db에 디렉토리가 없습니다.그래서 하나 만들었어요.이제 작동한다.해당 디렉토리에 대한 권한을 부여해야 합니다.
제 경우 이전 버전은 3.2였습니다.3.6으로 업그레이드 했지만, 데이터 파일이 새로운 버전에 대응하고 있지 않기 때문에, 나와 그 동작에 사용할 수 없는 데이터 파일을 모두 삭제했습니다.
하려면 , 「」를 사용합니다./var/log/mongodb
이 튜토리얼의 인스톨 순서에 따릅니다.
Ubuntu 16.04에 MongoDB를 설치하는 방법
저도 같은 실수를 했어요.마침내 포트 번호를 설정해야 한다는 것을 알게 되었습니다.
mongo 명령의 기본 포트 번호는 27017 입니다.
단, mongo.conf의 기본 포트 번호는 29999 입니다.
이것으로 나는 성공했다.
sudo service mongod restart
포트가 열려 있어도 MongoDB는 현재 로컬주소 127.0.0.1에서만 리슨하고 있습니다.원격 연결을 허용하려면 서버의 공용 라우팅 가능한 IP 주소를 mongod.conf 파일에 추가합니다.
편집기에서 MongoDB 구성 파일을 엽니다.
sudo nano /etc/mongodb.conf
바인드에 서버의 IP 주소를 추가합니다.IP 값:
...
logappend=true
bind_ip = 127.0.0.1,your_server_ip
#port = 27017
...
이제 사용자 이름과 비밀번호를 가진 모든 사용자가 DB에 로그인할 수 있으며 특정 IP에 대해서만 연결을 제한하여 이를 방지하고자 합니다.방화벽(구글에서 UFW 서비스에 대해 확인)을 사용하여 수행할 수 있습니다.간단히 말하면 다음과 같습니다.
sudo ufw allow from YOUR_IP to any port 27017
언급URL : https://stackoverflow.com/questions/24899849/connection-refused-to-mongodb-errno-111
'programing' 카테고리의 다른 글
| JavaScript 개체를 JSON으로 인코딩하려면 어떻게 해야 합니까? (0) | 2023.03.20 |
|---|---|
| Bootstrap-datepicker 요소를 angularjs ng-model과 바인드하는 방법 (0) | 2023.03.20 |
| Larabel 5: 요청이 JSON을 원할 때 예외 처리 (0) | 2023.03.20 |
| 스프링 부츠와 스프링 부츠의 차이 (0) | 2023.03.20 |
| JSON 오브젝트 이름/값 액세스 방법 (0) | 2023.03.15 |