1、下載安裝包

cd /opt/
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.14.tgzer
2、解壓包
tar -zxvf mongodb-linux-x86_64-4.0.14.tgz
3、重命名
mv mongodb-linux-x86_64-4.0.14 /usr/local/
4、新建存儲路徑
mkdir /usr/local/mongodb/data/
mkdir /usr/local/mongodb/logs/
mkdir /usr/local/mongodb/etc/
5、創建配置和日志文件
touch mkdir /usr/local/mongodb/logs/mongodb.log
vim mkdir /usr/local/mongodb/etc/mongodb.conf
指定數據庫路徑
dbpath=/usr/local/mongodb/data
指定MongoDB日志文件,注意是指定文件不是目錄
logpath=/usr/local/mongodb/logs/mongodb.log
指定服務端口號,默認端口27017
port=27017
以守護進程的方式運行MongoDB,創建服務器進程,即后台運行
fork=true
關閉日志選項(開啟的話,MongoDB的數據操作將會寫入到journal文件夾的文件里)
journal=false
綁定服務IP,若綁定127.0.0.1,則只能本機訪問;若綁定0.0.0.0,則所有人都可以訪問。
bind_ip=0.0.0.0
開啟用戶認證
auth=true
這個選項可以過濾掉一些無用的日志信息,若需要調試使用請設置為false
quiet=true
6、配置環境變量
export PATH=$PATH:/usr/local/mongodb/bin/
7、啟動mongodb
/usr/local/mongodb/bin/mongod -f ../etc/mongodb.conf
8、使用./mongo登錄並創建賬號密碼
/usr/local/mongodb/bin/mongo
use admin
db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
db.auth("admin", "123456") #如果返回1,則表示成功。
db.auth() #方法理解為用戶的驗證功能
9、關閉mongodb server
db.shutdownServer 若出下下面報錯
已經完成登錄驗證 並且成功 但是在使用db.shutdownServer()時 依舊出錯
2019-12-24T19:03:42.683+0800 E QUERY [js] Error: shutdownServer failed: {
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { shutdown: 1.0, lsid: { id: UUID("3db00cd6-842b-4c2b- a8e5-d5db6bdf3bc6") }, $db: "admin" }",
"code" : 13,
"codeName" : "Unauthorized"
} :
然后將這個角色賦予bjsxt后 就可以繼續使用了
db.grantRolesToUser( "admin" , [ { role: "hostManager", db: "admin" } ])
語法:
db.grantRolesToUser( "用戶名" , [ { role: "hostManager", db: "admin" } ])
hostManager:提供了監控和管理服務器的權限,包括shutdown節點,logrotate, repairDatabase等。
10、可以使用mongodb命令show users,查看已有用戶
show users

11、進入mongodb 使用admin創建其他數據庫賬號密碼
use admin
db.auth("admin","123456")
12、新建你需要管理的mongodb數據的賬號密碼
use test
db.createUser({user:"test",pwd:"123456",roles:[{role:"dbOwner",db:"test"}]})
role:dbOwner 代表數據庫所有者角色,擁有最高該數據庫最高權限。比如新建索引等。

db.createUser({user:"test2",pwd:"123456",roles:[{role:"readWrite",db:"test"}]})
該用戶用於該數據的讀寫,只擁有讀寫權限

