복붙노트

[MONGODB] 기계 IP를 사용하여 MongoDB를 연결할 수 없습니다

MONGODB

기계 IP를 사용하여 MongoDB를 연결할 수 없습니다

사제를 사용하여 몽고 설치됩니다. 내가 쉘에 몽고 입력하면, 그것은 시험에 연결됩니다. 하지만 로컬 컴퓨터의 IP 주소를 입력하는 대신 127.0.0.1 때

mongo --host 192.168.1.100 --verbose

그것은 나에게 오류 메시지를 제공합니다

MongoDB shell version: 2.4.6
Fri Aug 23 15:18:27.552 versionArrayTest passed
connecting to: 192.168.1.100:27017/test
Fri Aug 23 15:18:27.579 creating new connection to:192.168.1.100:27017 
Fri Aug 23 15:18:27.579 BackgroundJob starting: ConnectBG
Fri Aug 23 15:18:27.580 Error: couldn't connect to server 192.168.1.100:27017 at src/mongo/shell/mongo.js:147
Fri Aug 23 15:18:27.580 User Assertion: 12513:connect failed

유무는 bind_ip을 주석 또는 127.0.0.1에서 0.0.0.0하지만 행운에 IP 주소를 변경하여 mongo.conf를 수정했습니다. 이것은 간단하지만 지금은 단서가 없습니다. Mac을 사용.

감사

업데이트 : 요청으로. 당신이 제안 내가 변경 한 후이 작동합니다.

ifconfig를 출력

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
   options=3<RXCSUM,TXCSUM>
   inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
   inet 127.0.0.1 netmask 0xff000000 
   inet6 ::1 prefixlen 128 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
   ether XX:XX:XX:
   media: autoselect (none)
   status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   ether XX:XX:XX:XX:01 
   inet6 XXXX:XXXX:XXXX: %en1 prefixlen 64 scopeid 0x5 
   inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
   media: autoselect
   status: active
 p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
   ether XX:XX:XX:XX:XX
   media: autoselect
   status: inactive
 fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
   lladdr XX:XX:XX:XX
   media: autoselect <full-duplex>
   status: inactive

출력 명령을 실행할 때 몽고 --host 192.168.1.100 --verbose

MongoDB shell version: 2.4.5
Fri Aug 23 16:42:09.806 versionArrayTest passed
connecting to: 192.168.1.100:27017/test
Fri Aug 23 16:42:09.837 creating new connection to:192.168.1.100:27017
Fri Aug 23 16:42:09.837 BackgroundJob starting: ConnectBG
Fri Aug 23 16:42:10.129 connected connection!
Server has startup warnings: 
Fri Aug 23 16:41:59.025 [initandlisten] 
Fri Aug 23 16:41:59.025 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

파일 mongod.conf

# Store data in /usr/local/var/mongodb instead of the default /data/db
dbpath = /usr/local/var/mongodb

# Append logs to /usr/local/var/log/mongodb/mongo.log
logpath = /usr/local/var/log/mongodb/mongo.log
logappend = true

# Only accept local connections
bind_ip = 0.0.0.0`

해결법

  1. ==============================

    1.당신은 바인드 주소를 변경하면 난 그냥 브루 내 Mac에서이 테스트, 잘 작동합니다. 나는 당신이 아마 바인드 올바른에 대한 설정을하지 않았다 의심?

    당신은 바인드 주소를 변경하면 난 그냥 브루 내 Mac에서이 테스트, 잘 작동합니다. 나는 당신이 아마 바인드 올바른에 대한 설정을하지 않았다 의심?

    우리 모두가 정보를 가지고 그냥 그래서, 당신은 제발은 ifconfig의 출력을 붙여 넣을 수 있습니다?

    기본적으로 MongoDB를하지만, 브루 설정이 (/usr/local/etc/mongod.conf를) 대체 할 것 같다 당신은 구성을 변경할 필요가 없습니다, 모든 인터페이스에서 수신한다 :

    # Only accept local connections
    bind_ip = 127.0.0.1
    

    MongoDB를 죽이고이 (주에게 -v)을 실행하십시오 :

    $ mongod --bind_ip 0.0.0.0 -v
    warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default
    all output going to: /usr/local/var/log/mongodb/mongo.log
    

    다만 그것을 위해 당신의 출력을하시기 바랍니다 붙여?

    그리고 단지 시도 :

    $ mongo --host 192.168.43.2 --verbose
    MongoDB shell version: 2.4.6
    Sat Aug 24 09:07:14.556 versionArrayTest passed
    connecting to: 192.168.43.2:27017/test
    Sat Aug 24 09:07:14.657 creating new connection to:192.168.43.2:27017
    Sat Aug 24 09:07:14.657 BackgroundJob starting: ConnectBG
    Sat Aug 24 09:07:14.657 connected connection!
    Server has startup warnings: 
    Sat Aug 24 09:06:44.360 [initandlisten] 
    Sat Aug 24 09:06:44.360 [initandlisten] ** WARNING: soft rlimits too low. Number of files     is 256, should be at least 1000
    > 
    

    분명히 당신의 IP 주소로 대체합니다. 우리가 어떻게되는지 알려주세요.

  2. ==============================

    2.아니 당신이 어떤 IP에서 나머지 인터페이스에 액세스하려면 사실, 당신이 mongod.conf에서 0.0.0.0로하지 세트 bind_ip 필요 만 댓글과 유사한, 그것은에서 구성 항목을 제거

    아니 당신이 어떤 IP에서 나머지 인터페이스에 액세스하려면 사실, 당신이 mongod.conf에서 0.0.0.0로하지 세트 bind_ip 필요 만 댓글과 유사한, 그것은에서 구성 항목을 제거

    #bind_ip=127.0.0.1
    

    그리고, 서비스를 다시 시작, 당신은 당신이 당신의 시스템에서 28017 포트에서 나머지 서비스에 액세스 할 수 있는지 찾을 수 있습니다

  3. ==============================

    3.성공:

    성공:

    # network interfaces (wjp: comment bindIp listening on all IPs)
    net:
      port: 27017
    #  bindIp: 127.0.0.1
      bindIp: 0.0.0.0
    
  4. ==============================

    4.참고 : 구성 창 10입니다 아래 MongoDB를 4.0

    참고 : 구성 창 10입니다 아래 MongoDB를 4.0

    이 두 가지 방법으로 구성 할 수 있습니다.

    쉘 명령을 사용하여

    먼저 관리자로 cmd를 열고 --YourPath로 이동 - \ MongoDB를 \ 서버 \ 4.0 \ 빈

    주의 :이 IP 구성은 네트워크를 통해 사용자의 DB에 액세스 할 수 있습니다.

    mongod.cfg 통해

    MongoDB를 여기 구성을위한 아주 좋은 문서가있다.

    그냥 bindIp을 변경 : 127.0.0.1 bindIp에 : 0.0.0.0은. 그런 다음 위의 주제에서 # 3 점을 사용하여 서비스를 다시 시작합니다.

  5. ==============================

    5.사실 (자세한 내용은 http://docs.mongodb.org/manual/reference/configuration-options/ 참조) 나를 위해 내가 bindIpAll와 bindIp를 교체했다.

    사실 (자세한 내용은 http://docs.mongodb.org/manual/reference/configuration-options/ 참조) 나를 위해 내가 bindIpAll와 bindIp를 교체했다.

    이건 내 mongod.conf 파일의 내용이다.

    # mongod.conf
    
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # Where and how to store data.
    storage:
      dbPath: /var/lib/mongodb
      journal:
        enabled: true
    #  engine:
    #  mmapv1:
    #  wiredTiger:
    
    # where to write logging data.
    systemLog:
      destination: file
      logAppend: true
      path: /var/log/mongodb/mongod.log
    
    # network interfaces
    net:
      port: 27017
      # bindIp: 127.0.0.1
      bindIpAll: true
    
    
    # how the process runs
    processManagement:
      timeZoneInfo: /usr/share/zoneinfo
    
    #security:
    
    #operationProfiling:
    
    #replication:
    
    #sharding:
    
    ## Enterprise-Only Options:
    
    #auditLog:
    
    #snmp:
    
  6. from https://stackoverflow.com/questions/18412850/cannot-connect-to-mongodb-using-machine-ip by cc-by-sa and MIT license