(전재)6 MongoDB 연결

MongoDB는 클라이언트의 연결을 기다리는 동안 이전 데스크톱이나 백그라운드에서 실행할 수 있는 데이터베이스 서버입니다.MongoDB를 시작하면 다음과 같은 출력을 볼 수 있습니다.
~/$ ./mongod 
# 
# some logging output 
# 
Tue Mar 9 11:15:43 waiting for connections on port 27017 
Tue Mar 9 11:15:43 web admin interface listening on port 28017 

출력은 여기에 멈추고 클라이언트가 27017 포트에 연결되기를 기다립니다.데이터베이스에 연결하고 명령을 보내기 시작하면, 실행 중인 작업을 계속 출력합니다.모든 MongoDB 드라이브나 Mongo 셸을 사용하여 데이터베이스에 연결할 수 있습니다.하지만 너는_아니오_브라우저를 통해 27017 포트 액세스http://localhost:27017.데이터베이스에서 HTTP 방식으로 포트에 액세스하지 않습니다.

표준 연결 문자열 형식

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

mongodb://는 현재 문자열이 표준 연결 형식임을 표시하는 필수 접두사입니다.
{{username:password@}} 선택할 수 있습니다.사용자 이름과 비밀번호를 입력하면 드라이브는 데이터베이스에 연결된 후 로그인을 시도합니다.
host1uri의 유일한 필수 항목, 데이터베이스 연결 주소입니다.
: portX 옵션.27017 포트에 기본적으로 연결됩니다.
/database는 연결을 원하는 데이터베이스 이름입니다.username:password@를 제공한 후에만 이 값이 유효합니다.지정하지 않으면 기본적으로 "admin"데이터베이스에 연결됩니다.
여러 개의 데이터베이스와 포트를 임의로 지정할 수 있습니다. 이것은replicapairs/sets에 연결하는 데 사용됩니다.
옵션은 다음과 같습니다.
connect=direct|replicaset
direct: 서버에 직접 연결합니다.여러 호스트를 지정하면 연결이 성공할 때까지 선착순으로 연결을 시도합니다.호스트가 하나만 지정되어 있으면direct는 기본값입니다.
replicaset:creplica set semantics를 사용하여 연결을 만듭니다.지정한host는 피드 목록으로 완전한 Replica set을 찾습니다.여러 host를 지정할 때 Replicaset은 기본값입니다.

replicaset=name
연결을 인증하는 Replica set의 이름을 구동합니다.connect=replicaset을 억제합니다.

slaveok=true|false
true:connect=direct 모드에서 목록의 첫 번째 서버에 대한 연결을 구동합니다. 메인 서버가 아니더라도.connect=replicaset 모드에서 드라이브는 모든 쓰기 동작을 주 노드에 보내고 모든 읽기 동작을roundrobin 순서에 따라 노드에서 나누어 줍니다.
false:connect=direct 모드에서 드라이브는 주 노드를 찾을 때까지 순서대로 모든 호스트를 시도합니다.connect=replicaset 모드에서 드라이브는 주 노드에만 연결되고 모든 읽기와 쓰기를 주 노드에 보냅니다.

safe=true|false
true: 업데이트가 성공할 때마다 getlasterror 명령을 보냅니다. (w와 wtimeout 참조)
false: 업데이트할 때마다 getlasterror 명령을 보내지 않습니다.

w=n
getlasterror에 {w:n} 명령을 보냅니다.safe=true 를 숨깁니다.

wtimeout=ms
getlasterror에 {wtimeout:ms} 인자를 추가합니다.safe=true 를 숨깁니다.

fsync=true|false
true: getlasterror에 {fsync:true} 인자를 추가합니다.safe=true 를 숨깁니다.
false: 드라이브에 fsync 파라미터를 추가하지 않습니다.

예제


기본 포트(27017)에서 실행되는 MongoDB에 연결
mongodb://localhost 

기본 포트(27017)에서 실행되는 MongoDB에 연결하고 사용자 이름'fred'와 비밀번호'foobar'로 로그인합니다. 로그인 후 관리자 데이터베이스를 기본적으로 사용합니다.
mongodb://fred:foobar@localhost 

기본 포트(27017)에서 실행되는 MongoDB에 연결하고 사용자 이름'fred'와 비밀번호'foobar'로 로그인합니다. 로그인 후 baz 데이터베이스를 사용합니다.
mongodb://fred:foobar@localhost/baz 

Replicapair에 연결합니다. 서버가 example1에 있습니다.com, 다른 한 대는 example2.com
mongodb://example1.com:27017,example2.com:27017 

이 컴퓨터에 연결된 Replica set(포트는 각각 270172701827019)
mongodb://localhost,localhost:27018,localhost:27019 

세 서버에 연결된 리플리카 set은 모든 쓰기 동작을 주 노드에 보내고 모든 읽기 동작을 노드에서
 
mongodb://host1,host2,host3/?slaveok=true 

첫 번째 서버에 연결하고 응답합니다. 리플리카 set의 한 대든지, 메인 노드든지, 노드든지.
 
mongodb://host1,host2,host3/?connect=direct;slaveok=true 

주: 이런 종류의 연결 문자열은 어떤 서버를 선호하지만 교체할 수 있는 서버가 있을 때 사용할 수 있습니다.
안전 모드를 사용하여 본 컴퓨터에 연결하기
 
mongodb://localhost/?safe=true 

안전 모드를 사용하여 Replica set에 연결하여 최소한 두 대의 기계에서 백업이 끝날 때까지 기다립니다. timeout 시간은 2초입니다.
 
mongodb://host1,host2,host3/?safe=true;w=2;wtimeout=2000 

연결 풀


각 TCP 연결은 데이터베이스 스레드에 해당합니다.따라서 어떤 형태의 연결 탱크 기술을 사용하는 것을 강력히 권장합니다.다행히도 대부분의 공식 데이터베이스 드라이브가 내장되어 이 기능을 실현했다.그러나 CGI나 PHP를 사용하면 모든 새로운 요청에 대응하여 새로운 응용 프로세스를 시작할 수 있습니다. 이 경우 연결 처리에 각별히 주의해야 합니다.

좋은 웹페이지 즐겨찾기