当前位置:网站首页>安裝mongodb
安裝mongodb
2022-04-21 08:04:00 【逸足天涯】
MongoDB筆記一
官網 https://www.mongodb.com/
1. 什麼是MongDB
MongoDB是一款為web應用程序和互聯網基礎設施設計的數據庫管理系統。沒錯MongoDB就是數據庫,是NoSQL類型的數據庫
主要特性
- 文檔數據類型
- 即時查詢能力
- 複制能力
- 數據擴展
2 window 安裝MongoDb
參考博客:
https://blog.csdn.net/x_i_xw/article/details/82258125
創建root 用戶
use admin
db.createUser({user:“root”,pwd:“123”,roles[{role:“userAdminAnyDatabase”,db:“admin”}]})
啟動關閉,使用管理員權限
net start mongodb
net stop mongodb
3. Liunx 安裝 Mongodb
下載
cd /opt
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.13.tgz
tar -xzvf mongodb-linux-x86_64-rhel70-4.4.13.tgz
mv mongodb-linux-x86_64-rhel70-4.4.13 mongodb
mkdir mongodb/data mongodb/logs
啟動服務
方式一 命令行啟動
cd /opt/mongodb/bin
./mongod --port=27017 --dbpath=/opt/mongodb/data --logpath=/opt/mongodb/logs/mongodb.log --bind_ip=0.0.0.0 --fork

方式二 文件啟動
進入到bin目錄下,編輯mongodb.conf文件,內容如下:
cd /opt/mongodb/bin
vim mongodb.conf
dbpath=/opt/mongodb/data
logpath=/opt/mongodb/logs/mongodb.log
port=27017
fork=true
bind_ip=0.0.0.0
./mongod -f mongodb.conf

注意:(也可以使用YAML格式)
# mongod.conf
# Where and how to store data.
storage:
dbPath: /opt/mongodb/data
journal:
enabled: true
engine: wiredTiger #存儲引擎
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /opt/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
fork: true # 後臺啟動
配置環境vim 、/etc/profile

source /etc/profile
關閉mongodb
ps -ef | grep mongo
kill -9 端口號

再次啟動
cd ~
mongod -f /opt/mongodb/bin/mongodb.conf
關閉服務
方式一
mongod -f /opt/mongodb/bin/mongodb.conf --shutdown

方式二
使用db.shutdownServer();命令可以關閉到MongoDB服務,但是這個命令的執行要在admin數據庫下,所以先切換到admin,再關閉服務,完整運行過程如下:

方式三
關閉mongodb
ps -ef | grep mongo
kill -9 端口號
安全管理
上面我們所做的所有的操作都沒有涉及到用戶,我們在用Oracle、MySQL或者MSSQL時都有用戶名密碼需要登錄才可以操作,MongoDB中當然也有,但是需要我們手動添加。在添加之前,我們先來說說MongoDB中用戶管理的幾個特點:
1.MongoDB中的賬號是在某一個庫裏邊進行設置的,我們在哪一個庫裏邊進行設置,就要在哪一個庫裏邊進行驗證。
2.創建用戶時,我們需要指定用戶名、用戶密碼和用戶角色,用戶角色錶示了該用戶的權限。
OK,假設我給admin數據庫創建一個用戶,方式如下:
use admin
db.createUser({user:"root",pwd:"123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
user錶示用戶名,pwd錶示密碼,role錶示角色,db錶示這個用戶應用在哪個數據庫上。用戶的角色,有如下幾種:
1.Read:允許用戶讀取指定數據庫
2.readWrite:允許用戶讀寫指定數據庫
3.dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、删除,查看統計或訪問system.profile
4.userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、删除和管理用戶
5.clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複制集相關函數的管理權限
6.readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
7.readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
8.userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
9.dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限
10.root:只在admin數據庫中可用。超級賬號,超級權限
用戶創建成功之後,我們關閉掉當前MongoDB服務實例,然後重新啟動新的實例,啟動方式如下:
mongod -f /opt/mongodb/bin/mongodb.conf --auth
啟動成功之後,如果我們直接執行如下命令,會提示沒有權限:
show dbs
執行結果如下:
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
此時我們需要先進入到admin數據庫中,然後授權,操作如下:
use admin
db.auth("root","123")
auth方法執行結果返回1錶示認證成功。然後再去執行show dbs就可以看到預期結果了。此時我再在sang庫下創建一個只讀用戶,如下:
use sang
db.createUser({user:"readuser",pwd:"123",roles:[{role:"read",db:"sang"}]})
創建成功之後,再按照上面的流程進入到sang庫中,使用readuser用戶進行認證,認證成功之後一切我們就可以在sang庫中執行查詢操作了,步驟如下:
use sang
db.auth("readuser","123")
做完這兩步之後再執行查詢操作就沒有任何問題了,但是此時如果執行插入操作會提示沒有權限,那我們可以創建一個有讀寫功能的用戶執行相應的操作,這裏就不再贅述。
開啟服務端口

在其他主機訪問
在window 中訪問
連接語法:
mongodb://username:paswd@host:port
mongo mongodb://root:[email protected]:27017

使用 Mongdb Compass 工具連接

版权声明
本文为[逸足天涯]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204210715497823.html
边栏推荐
- AnalyticDB MySQL版中不支持int嘛?
- Enum 枚举类型
- go-ini的用法
- Implementing AES encryption and decryption with PHP
- Informatics Aosai yibentong 1209: score summation | openjudge 1.13 12: score summation
- 可以下载到跑LOAM的数据集
- Laravel print SQL
- Actual combat of cloud native kubesphere multi tenant system
- 天梯赛L3
- [Ethernet switching security] - explanation of port isolation operation principle and two-layer isolation and three-layer communication example configuration
猜你喜欢

【项目】小帽外卖(五)

Win10 prompts that there is no mapping between account name and security ID

Usage of go ini

Apache solr 远程代码执行漏洞(CVE-2019-0193)复现

Picture material free material picture material website picture material where to find some picture material download the purpose of picture material picture material product picture material website

Yolov5 5.0调用本地摄像头

【2022DASCTF X SU】 三月春季挑战赛 web复现

强到离谱,Transformer为何能闯入CV界秒杀CNN?

树的基本概念与存储结构

2022年电工(初级)考试题库及答案
随机推荐
V-has permission control based on jeecgboot
J'ai accidentellement trouvé la base de données d'une soeur Tsinghua!
Acrobat Pro DC 教程::如何使用文本和图片文件创建 PDF?
Win10 prompts that there is no mapping between account name and security ID
VIM plug-in management plug-in VIM plug-in
2022-4-20作业
Package and download files
It can be downloaded to the data set running loam
Sword finger offer day22 bit operation (medium)
Enum 枚举类型
The interface is not restored after Fiddler changes the font
Virtual machine host Ping SSH campus network bridge net
AnalyticDB MySQL版中不支持int嘛?
Couchdb-垂直越权
Why the existing modules in PIP list cannot be used in the new project has been solved
结合实际聊聊防反接电路(防反接电路总结)
Informatics Aosai yibentong 1209: score summation | openjudge 1.13 12: score summation
sys. stdin. ReadLine and readlines and input ()
Valentina Studio Pro for Mac(mac数据库管理软件)
2022年R2移动式压力容器充装考试题模拟考试题库及模拟考试