MongoDB學習筆記——MongoDB 連線配置
https://www.cnblogs.com/AlvinLee/p/6062167.html
--------------------------------------------------------------------------------MongoDB Replica Set配置
https://blog.csdn.net/monkey_four/article/details/50837586
--------------------------------------------------------------------------------
MongoDB連線標準格式:
mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
引數說明
Mongodb:// |
必填的字首,標識當前字串為便準連結格式 |
username:[email protected] |
可選項,給出使用者名稱和密碼後,在連線資料庫伺服器後,驅動都會嘗試登陸這個資料庫 |
host |
uri裡唯一的必填項,資料庫的連線地址,人如果需要連線副本集,需要制定多個主機地址 |
:port |
可選項,如果不填則預設為27017埠 |
/database |
希望連線到的資料庫名稱,只要在設定username:[email protected]後才會有效,如果不指定,則預設為admin資料庫 |
?options |
可選項,如果不適用/database,則需要在前面加上/。所有連線選項都是鍵值對name=value格式,鍵值對之間使用&或;(分號)分割 |
options引數說明
connect=direct|replicaset |
direct: 直接建立一個到伺服器的連線。如果指定了多個host,將按先後順序挨個嘗試建立連線,直到連線建立成功為止。如果只指定了一個host,則 direct 為預設值。 replicaset: 使用creplica set semantics建立連線(即使只提供了一個host)。指定的host作為種子列表來查詢完整的replica set。當指定多個host時 replicaset 為預設值。 |
replicaset=name |
驅動驗證建立連線的replica set的名字。應用於 connect=replicaset。 |
slaveok=true|false |
true: 對於 connect=direct 模式,驅動對列表中的第一個伺服器建立連線,即使它不是主伺服器。對 connect=replicaset 模式,驅動將所有寫操作傳送到主節點,將所有讀操作按round robin順序分發到從節點。 false: 對 connect=direct 模式,驅動按順序嘗試所有host直到找到主節點。對 connect=replicaset 模式,驅動將只連線到主節點,並將所有讀操作和寫操作都發送到主節點。 |
safe=true|false |
true: 驅動在每次更新操作後都發送 getlasterror 命令以確保更新成功(參考 w 和 wtimeout)。 false: 驅動每次更新操作後不傳送 getlasterror 命令。 |
w=n |
w:代表server的數量:。 w=0 不等待,只返回網路錯誤 w=1 檢查本機,並檢查網路錯誤 w>1 檢查w個server,並返回網路錯誤 應用於safe=true |
wtimeoutMS=ms |
寫操作超時的時間,應用於 safe=true. |
fsync=true|false |
是不是等待重新整理資料到磁碟,應用於safe=true |
journal=true|false |
是不是等待提交的資料已經寫入到日誌,並重新整理到磁碟,應用於safe=true |
maxPoolSize=n minPoolSize=n |
一些驅動會把沒用的連線關閉。 然而,如果連線數低於minPoolSize值之下, 它們不會關閉空閒的連線。注意:連線會按照需要進行建立,因此當連線池被許多連線預填充的時候,minPoolSize不會生效。 |
waitQueueTimeoutMS=ms |
在超時之前,執行緒等待連線生效的總時間。如果連線池到達最大並且所有的連線都在使用,這個引數就生效了。 |
waitQueueMultiple=n |
驅動強行限制執行緒同時等待連線的個數。 這個限制了連線池的倍數。 |
connectTimeoutMS=ms |
可以開啟連線的時間。 |
socketTimeoutMS=ms |
傳送和接受sockets的時間 |
ReadPreference |
primary 主節點,預設模式,讀操作只在主節點,如果主節點不可用,報錯或者丟擲異常。 primaryPreferred 首選主節點,大多情況下讀操作在主節點,如果主節點不可用,如故障轉移,讀操作在從節點。 secondary 從節點,讀操作只在從節點, 如果從節點不可用,報錯或者丟擲異常。 secondaryPreferred 首選從節點,大多情況下讀操作在從節點,特殊情況(如單主節點架構)讀操作在主節點。 nearest 最鄰近節點,讀操作在最鄰近的成員,可能是主節點或者從節點 |
參考示例:
連線本地資料庫伺服器,埠是預設的。
mongodb://localhost |
使用使用者名稱fred,密碼foobar登入localhost的admin資料庫。
mongodb://fred:[email protected] |
使用使用者名稱fred,密碼foobar登入localhost的baz資料庫。
mongodb://fred:[email protected]/baz |
連線 replica pair, 伺服器1為example1.com伺服器2為example2。
mongodb://example1.com:27017,example2.com:27017 |
連線 replica set 三臺伺服器 (埠 27017, 27018, 和27019):
mongodb://localhost,localhost:27018,localhost:27019 |
連線 replica set 三臺伺服器, 寫入操作應用在主伺服器 並且分佈查詢到從伺服器。
mongodb://host1,host2,host3/?slaveOk=true |
直接連線第一個伺服器,無論是replica set一部分或者主伺服器或者從伺服器。
mongodb://host1,host2,host3/?connect=direct;slaveOk=true |
當你的連線伺服器有優先順序,還需要列出所有伺服器,你可以使用上述連線方式。
安全模式連線到localhost:
mongodb://localhost/?safe=true |
以安全模式連線到replica set,並且等待至少兩個複製伺服器成功寫入,超時時間設定為2秒。
mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000 |
» 下一篇: MongoDB學習筆記——集合管理
MongoDB連線標準格式:
mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
引數說明
Mongodb:// |
必填的字首,標識當前字串為便準連結格式 |
username:[email protected] |
可選項,給出使用者名稱和密碼後,在連線資料庫伺服器後,驅動都會嘗試登陸這個資料庫 |
host |
uri裡唯一的必填項,資料庫的連線地址,人如果需要連線副本集,需要制定多個主機地址 |
:port |
可選項,如果不填則預設為27017埠 |
/database |
希望連線到的資料庫名稱,只要在設定username:[email protected]後才會有效,如果不指定,則預設為admin資料庫 |
?options |
可選項,如果不適用/database,則需要在前面加上/。所有連線選項都是鍵值對name=value格式,鍵值對之間使用&或;(分號)分割 |
options引數說明
connect=direct|replicaset |
direct: 直接建立一個到伺服器的連線。如果指定了多個host,將按先後順序挨個嘗試建立連線,直到連線建立成功為止。如果只指定了一個host,則 direct 為預設值。 replicaset: 使用creplica set semantics建立連線(即使只提供了一個host)。指定的host作為種子列表來查詢完整的replica set。當指定多個host時 replicaset 為預設值。 |
replicaset=name |
驅動驗證建立連線的replica set的名字。應用於 connect=replicaset。 |
slaveok=true|false |
true: 對於 connect=direct 模式,驅動對列表中的第一個伺服器建立連線,即使它不是主伺服器。對 connect=replicaset 模式,驅動將所有寫操作傳送到主節點,將所有讀操作按round robin順序分發到從節點。 false: 對 connect=direct 模式,驅動按順序嘗試所有host直到找到主節點。對 connect=replicaset 模式,驅動將只連線到主節點,並將所有讀操作和寫操作都發送到主節點。 |
safe=true|false |
true: 驅動在每次更新操作後都發送 getlasterror 命令以確保更新成功(參考 w 和 wtimeout)。 false: 驅動每次更新操作後不傳送 getlasterror 命令。 |
w=n |
w:代表server的數量:。 w=0 不等待,只返回網路錯誤 w=1 檢查本機,並檢查網路錯誤 w>1 檢查w個server,並返回網路錯誤 應用於safe=true |
wtimeoutMS=ms |
寫操作超時的時間,應用於 safe=true. |
fsync=true|false |
是不是等待重新整理資料到磁碟,應用於safe=true |
journal=true|false |
是不是等待提交的資料已經寫入到日誌,並重新整理到磁碟,應用於safe=true |
maxPoolSize=n minPoolSize=n |
一些驅動會把沒用的連線關閉。 然而,如果連線數低於minPoolSize值之下, 它們不會關閉空閒的連線。注意:連線會按照需要進行建立,因此當連線池被許多連線預填充的時候,minPoolSize不會生效。 |
waitQueueTimeoutMS=ms |
在超時之前,執行緒等待連線生效的總時間。如果連線池到達最大並且所有的連線都在使用,這個引數就生效了。 |
waitQueueMultiple=n |
驅動強行限制執行緒同時等待連線的個數。 這個限制了連線池的倍數。 |
connectTimeoutMS=ms |
可以開啟連線的時間。 |
socketTimeoutMS=ms |
傳送和接受sockets的時間 |
ReadPreference |
primary 主節點,預設模式,讀操作只在主節點,如果主節點不可用,報錯或者丟擲異常。 primaryPreferred 首選主節點,大多情況下讀操作在主節點,如果主節點不可用,如故障轉移,讀操作在從節點。 secondary 從節點,讀操作只在從節點, 如果從節點不可用,報錯或者丟擲異常。 secondaryPreferred 首選從節點,大多情況下讀操作在從節點,特殊情況(如單主節點架構)讀操作在主節點。 nearest 最鄰近節點,讀操作在最鄰近的成員,可能是主節點或者從節點 |
參考示例:
連線本地資料庫伺服器,埠是預設的。
mongodb://localhost |
使用使用者名稱fred,密碼foobar登入localhost的admin資料庫。
mongodb://fred:[email protected] |
使用使用者名稱fred,密碼foobar登入localhost的baz資料庫。
mongodb://fred:[email protected]/baz |
連線 replica pair, 伺服器1為example1.com伺服器2為example2。
mongodb://example1.com:27017,example2.com:27017 |
連線 replica set 三臺伺服器 (埠 27017, 27018, 和27019):
mongodb://localhost,localhost:27018,localhost:27019 |
連線 replica set 三臺伺服器, 寫入操作應用在主伺服器 並且分佈查詢到從伺服器。
mongodb://host1,host2,host3/?slaveOk=true |
直接連線第一個伺服器,無論是replica set一部分或者主伺服器或者從伺服器。
mongodb://host1,host2,host3/?connect=direct;slaveOk=true |
當你的連線伺服器有優先順序,還需要列出所有伺服器,你可以使用上述連線方式。
安全模式連線到localhost:
mongodb://localhost/?safe=true |
以安全模式連線到replica set,並且等待至少兩個複製伺服器成功寫入,超時時間設定為2秒。
mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000 |