当前位置:网站首页>安装mongodb
安装mongodb
2022-04-21 07:16: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://zhaideyou.blog.csdn.net/article/details/124202692
边栏推荐
- go语言中的读写锁以及协程通信
- Accidentally found a Tsinghua sister's database!
- 联合类型和类型保护
- Why is the primary key matching setting in MySQL showing that I am wrong?
- TypeScript函数泛型
- Restful规范和使用
- Unity performance optimization UI
- set集合
- J'ai accidentellement trouvé la base de données d'une soeur Tsinghua!
- Laravel packages multiple files and downloads them
猜你喜欢

NAS选购参考对比

Replication of Apache Solr Remote Code Execution Vulnerability (cve-2019-0193)

2022年电工(初级)考试题库及答案

Build openwrt file system for i.mx6q development board

Ancient artifact VIM

亿级流量多级缓存架构

Question bank and answers of Electrical Engineering (elementary) examination in 2022

go-ini的用法

路由器设备选型参照天梯

YOLOv5模型环境搭建及使用google colab训练
随机推荐
torch中permute()函数用法补充内容(矩阵维度变化详细过程)
亿级流量多级缓存架构
PHP object to array
Vim插件管理插件Vim-plug
openfeign调用时传递文件
PHP format numbers
Informatics Aosai yibentong 1209: score summation | openjudge 1.13 12: score summation
类与对象的详解(构造方法的详解)
[Ethernet switching security] - port security and MAC address drift prevention and detection
kubesphere3. 0 forgot admin password
Playwright, selenium, operation ifram element
从零开始学习C语言日记——DAY27扫雷
【项目】小帽外卖(六)
ESmodule规范入门
树的基本概念与存储结构
【项目】小帽外卖(五)
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
Solution of losing Beijing time zone in window system
[Ethernet switching security] - explanation of port isolation operation principle and two-layer isolation and three-layer communication example configuration
2022年电工(初级)考试题库及答案