在本教程我們將討論 MongoDB 的不同連接方式。
啟動(dòng) MongoDB服務(wù)
在前面的教程中,我們已經(jīng)討論了如何啟動(dòng)MongoDB服務(wù),你只需要在MongoDB安裝目錄的bin目錄下執(zhí)行'mongod'即可。
執(zhí)行啟動(dòng)操作后,mongodb在輸出一些必要信息后不會(huì)輸出任何信息,之后就等待連接的建立,當(dāng)連接被建立后,就會(huì)開(kāi)始打印日志信息。
你可以使用 MongoDB shell 來(lái)連接 MongoDB 服務(wù)器。你也可以使用 PHP 來(lái)連接 MongoDB。本教程我們會(huì)使用 MongoDB shell 來(lái)連接 Mongodb 服務(wù),之后的章節(jié)我們將會(huì)介紹如何通過(guò)php 來(lái)連接MongoDB服務(wù)。
通過(guò)shell連接MongoDB服務(wù)
你可以通過(guò)執(zhí)行以下命令來(lái)連接MongoDB的服務(wù)。
注意:localhost為主機(jī)名,這個(gè)選項(xiàng)是必須的:
當(dāng)你執(zhí)行以上命令時(shí),你可以看到以下輸出結(jié)果:
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > mongodb://localhostmongodb://localhost ...
這時(shí)候你返回查看運(yùn)行 ./mongod 命令的窗口,可以看到是從哪里連接到MongoDB的服務(wù)器,您可以看到如下信息:
……省略信息…… 2015-09-25T17:22:27.336+0800 I CONTROL [initandlisten] allocator: tcmalloc 2015-09-25T17:22:27.336+0800 I CONTROL [initandlisten] options: { storage: { dbPath: "/data/db" } } 2015-09-25T17:22:27.350+0800 I NETWORK [initandlisten] waiting for connections on port 27017 2015-09-25T17:22:36.012+0800 I NETWORK [initandlisten] connection accepted from 127.0.0.1:37310 #1 (1 connection now open) # 該行表明一個(gè)來(lái)自本機(jī)的連接 ……省略信息……
MongoDB連接命令格式
使用用戶名和密碼連接到MongoDB服務(wù)器,你必須使用 'username:password@hostname/dbname' 格式,'username'為用戶名,'password' 為密碼。
使用用戶名和密碼連接登陸到默認(rèn)數(shù)據(jù)庫(kù):
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test mongodb://admin:123456@localhost/
以上命令中,用戶 admin 使用密碼 123456 連接到本地的 MongoDB 服務(wù)上。輸出結(jié)果如下所示:<、p>
> mongodb://admin:123456@localhost/ ...
使用用戶名和密碼連接登陸到指定數(shù)據(jù)庫(kù):
連接到指定數(shù)據(jù)庫(kù)的格式如下:
更多連接實(shí)例
連接本地?cái)?shù)據(jù)庫(kù)服務(wù)器,端口是默認(rèn)的。
使用用戶名fred,密碼foobar登錄localhost的admin數(shù)據(jù)庫(kù)。
使用用戶名fred,密碼foobar登錄localhost的baz數(shù)據(jù)庫(kù)。
連接 replica pair, 服務(wù)器1為example1.com服務(wù)器2為example2。
連接 replica set 三臺(tái)服務(wù)器 (端口 27017, 27018, 和27019):
連接 replica set 三臺(tái)服務(wù)器, 寫入操作應(yīng)用在主服務(wù)器 并且分布查詢到從服務(wù)器。
直接連接第一個(gè)服務(wù)器,無(wú)論是replica set一部分或者主服務(wù)器或者從服務(wù)器。
當(dāng)你的連接服務(wù)器有優(yōu)先級(jí),還需要列出所有服務(wù)器,你可以使用上述連接方式。
安全模式連接到localhost:
以安全模式連接到replica set,并且等待至少兩個(gè)復(fù)制服務(wù)器成功寫入,超時(shí)時(shí)間設(shè)置為2秒。
參數(shù)選項(xiàng)說(shuō)明
標(biāo)準(zhǔn)格式:
標(biāo)準(zhǔn)的連接格式包含了多個(gè)選項(xiàng)(options),如下所示:
選項(xiàng) | 描述 |
---|---|
replicaSet=name | 驗(yàn)證replica set的名稱。 Impliesconnect=replicaSet. |
slaveOk=true|false |
|
safe=true|false |
|
w=n | 驅(qū)動(dòng)添加 { w : n } 到getLastError命令. 應(yīng)用于safe=true。 |
wtimeoutMS=ms | 驅(qū)動(dòng)添加 { wtimeout : ms } 到 getlasterror 命令. 應(yīng)用于 safe=true. |
fsync=true|false |
|
journal=true|false | 如果設(shè)置為 true, 同步到 journal (在提交到數(shù)據(jù)庫(kù)前寫入到實(shí)體中). 應(yīng)用于 safe=true |
connectTimeoutMS=ms | 可以打開(kāi)連接的時(shí)間。 |
socketTimeoutMS=ms | 發(fā)送和接受sockets的時(shí)間。 |