1、安裝
mongoDB 分社區版和企業版,普通用戶都安裝社區版
MongoDB 有兩種安裝方式:一種是 通過 yum 安裝,另一種是直接下載 安裝包 解壓就可以了。
yum安裝會自動做一些配置, 如生成配置文件,日志、數據庫存儲文件,及linux服務
# yum安裝會自動創建 文件夾
# 數據存儲位置
/var/lib/mongo
# 日志文件夾
/var/log/mongodb
# 生成配置文件
/etc/mongod.conf
解壓安裝則需要手動創建,
詳情官網:https://docs.mongodb.com/manual/administration/install-on-linux/
2、啟動MongoDB 與 連接
啟動與關閉MongoDB
# 啟動
sudo systemctl start mongod
#查看狀態
sudo systemctl status mongod
#停止
sudo systemctl stop mongod
#服務自啟
sudo systemctl enable mongod
#也可以手動啟動 手動安裝命令在 /解壓包路徑/bin/mongod
/usr/bin/mongod -f /etc/mongod.conf
#手動關閉
/usr/bin/mongod -f /etc/mongod.conf --shutdown
一個機器上安裝一個 mongodb,可以啟動多個實例。即可以 使用 不同的 配置文件(端口,dbpath,logpath都不同)啟動
配置文件參考:https://docs.mongodb.com/manual/reference/configuration-options/
啟動MongoDB服務后才能連接,連接后才能使用數據庫
連接MongoDB
#連接本機的mongo 且 默認配置 ,手動安裝命令在 /解壓包路徑/bin/mongo
/usr/bin/mongo
# mongo 連接有兩種方式:
# 第一種: mongo 直接帶參數命令
mongo --host hostname --port port -username username -password pwd
#如果配置了環境變量路徑直接
mongo
./mongo 127.0.0.1:27017/database -u root -p 123456
# 第二種 使用 連接字符串
# 完整命令
mongo "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"
# mongodb:// 這是固定的格式,必須要指定。
# username:password@ 可選項,如果設置,在連接數據庫服務器之后,驅動都會嘗試登錄這個數據庫
# host1 必須的指定至少一個host, host1 是這個URI唯一要填寫的。它指定了要連接服務器的地址。如果要連接復制集,請指定多個主機地址。
# portX 可選的指定端口,如果不填,默認為27017
# /database 如果指定username:password@,連接並驗證登錄指定數據庫。若不指定,默認打開 test 數據庫。
# ?options 是連接選項。如果不使用/database,則前面需要加上/。所有連接選項都是鍵值對name=value,鍵值對之間通過&或;(分號)隔開
## 如果開啟了用戶認證,並使用 mongo命令 直接進入 shell
db.auth("userName", "123123");
# 使用用戶名fred,密碼foobar登錄localhost的baz數據庫
mongodb://fred:foobar@localhost/baz
# 連接復制集myRepl,讀取偏好 secondary
mongo "mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readPreference=secondary&maxStalenessSeconds=120"
# 設置了賬號密碼,且連接的數據庫和 賬號的所在數據庫不一致,需要設置 authSource 參數
# 實際連接的是 test 數據庫,但賬號密碼 是 admin 數據庫上的(設置了能操作其他數據庫的權限)
mongo "mongodb://username:pwd@db0.example.com,db1.example.com,db2.example.com/test?replicaSet=myRepl&readPreference=secondary&maxStalenessSeconds=120&authSource=admin"
options:
選項 | 描述 |
---|---|
replicaSet=name | 驗證replica set的名稱。 Impliesconnect=replicaSet. |
slaveOk=true | false |
true:在connect=direct模式下,驅動會連接第一台機器,即使這台服務器不是主。在connect=replicaSet模式下,驅動會發送所有的寫請求到主並且把讀取操作分布在其他從服務器。 | |
false: 在 connect=direct模式下,驅動會自動找尋主服務器. 在connect=replicaSet 模式下,驅動僅僅連接主服務器,並且所有的讀寫命令都連接到主服務器。 | |
safe=true | false |
true: 在執行更新操作之后,驅動都會發送getLastError命令來確保更新成功。(還要參考 wtimeoutMS). | |
false: 在每次更新之后,驅動不會發送getLastError來確保更新成功。 | |
w=n | 驅動添加 { w : n } 到getLastError命令. 應用於safe=true。 |
wtimeoutMS=ms | 驅動添加 { wtimeout : ms } 到 getlasterror 命令. 應用於 safe=true. |
fsync=true | false |
true: 驅動添加 { fsync : true } 到 getlasterror 命令.應用於 safe=true. | |
false: 驅動不會添加到getLastError命令中。 | |
journal=true | false |
connectTimeoutMS=ms | 可以打開連接的時間。 |
socketTimeoutMS=ms | 發送和接受sockets的時間。 |
mongo 命令連接:
https://docs.mongodb.com/v4.0/reference/connection-string/
https://docs.mongodb.com/v4.0/reference/program/mongo/index.html