mongodb指南(翻譯)(五) – developer zone – 串連

來源:互聯網
上載者:User

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等待串連。一旦你串連並開始發送命令,它會繼續輸出所作事情的log。你可以使用任何一個mongodb驅動或者mongo shell去串連到資料庫。

你不能通過在網頁瀏覽器上輸入http://localhost:27017來串連到mongodb。資料庫不能在連接埠27017上面使用HTTP訪問。

 

標準的連接字串格式

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
  • mongodb:// 必選的首碼,用來標示這是一個標準串連格式的字串
  • username:password@ 可選的。如果有,驅動在串連到資料庫伺服器後會嘗試登入到一個資料庫。
  • host1 URL的必選部分。它標示了要已連線的服務器地址。
  • :portX 是可選的。如果沒有提供預設串連到:27017.
  • /database 要登入的資料庫的名稱,只有username:password@文法使用後它才有用。如果沒有提供,預設使用“admin”。
  • ?options 是串連的可選項。注意如果database沒有提供,在最後一個主機和?符號中間依然需要一個斜杠"/"。可選項是名稱=值的配對,他們使用"&"或者";"隔開。

很多主機可能需要指定(串連到複製對/組)。

這些可選項是:

複製組:

  • replicaSet=name

    • 驅動會檢查串連到的複製組和這個名稱是否匹配。意味著如果給出的主機是種子列表,驅動會嘗試找到複製組內所有成員。

 單台伺服器:

  • slaveOk=true|false

任何配置下:

  • safe=true|false

    • true:驅動在執行更新操作後會發送一個getLastError命令確保更新成功(同時查看一下w和wtimeoutMS)。
    • false:驅動在每次更新操作後不會發送getLastError命令。
  • w=n
    • 驅動在getLastError命令中增加{w:n}。意味著safe=true.
  • wtimeoutMS=ms
    • 驅動在getLastError命令中增加{wtimeout:ms}。意味著safe=true.
  • fsync=true|false
    • true:驅動在getLastError命令中增加{fsync:true}。意味著safe=true.
    • false:驅動不在getLastError命令中增加同步參數。
  • journal=true|false
    • 同步到記錄檔。意味著fase=true.
  • connectTimeoutMS=ms
    • 一個串連在逾時之前可以保持開啟的時間。
  • socketTimeoutMS=ms
    • 通訊端上面的發送和接收操作的逾時時間。

這些可選項對大小寫不敏感。

一些例子

串連到運行在本機監聽預設連接埠的資料庫伺服器:

mongodb://localhost

使用使用者名稱“fred”和密碼“foobar”串連並登陸到管理資料庫:

mongodb://fred:foobar@localhost

使用使用者名稱“fred”和密碼“foobar”串連並登陸到“baz”資料庫:

mongodb://fred:foobar@localhost/baz

串連到一個複製配對,其中一台伺服器在example1.com另一台伺服器在example2.com:

mongodb://example1.com:27017,example2.com:27017

串連到一個複製組,三台伺服器運行在本地(連接埠為27017,27018,27019):

mongodb://localhost,localhost:27018,localhost:27019

串連到一個三台伺服器組成的複製組,將所有寫操作發送給主節點,分發所有讀操作到從節點:

mongodb://host1,host2,host3/?slaveOk=true

使用安全模式串連到本機:

mongodb://localhost/?safe=true

使用安全模式串連到複製組,等待覆制操作至少在2台機器完成,2秒逾時:

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000

 

串連池
伺服器會為每一個TCP串連啟動一個線程,強烈推薦你的應用程式使用某種類型的串連池。幸運的是,大部分驅動的都為你實現了這個功能。當你的應用程式為每個請求啟動一個進程時,驅動會拋出一個重要的異常,比如在CGI和一些PHP的配置中。

      

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.