用命令行安装mongodb指南
在用 scoop 安装 mongodb 后,没有像直接使用安装包那样,会将数据库服务一次安装到位,而是需要使用命令行来进行安装。
网上虽然有很多的教程,但是参差不齐,每次想找到一个能使用,还是会浪费一些时间,于是根据自己的需要,进行了总结。
小提示
不知从什么版本开始,用 scoop 安装的 mongodb
没有安装导入导出这些工具了,如果有需要,可以单独安装:scoop install mongodb-database-tools
初始配置
我的 mongodb 是安装在 E:\scoop\apps\mongodb\current\bin
位置
打开
E:\scoop\apps\mongodb\current\bin\mongod.cfg
文件,配置相关参数。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19# Where and how to store data.
storage
dbPath: D:\Applications\Scoop\apps\mongodb\4.2.7\data
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\Applications\Scoop\apps\mongodb\4.2.7\log\mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1dbPath 设置数据保存的路径
systemLog:path 设置日志的保存路径
以管理员身份打开 cmd 窗口。
输入
cd E:\scoop\apps\mongodb\current\bin
进入到 scoop 目录E:\scoop\apps\mongodb\current\bin
中在命令行中输入下面的命令安装 mogodb
1
mongod --config "E:\scoop\apps\mongodb\current\bin\mongod.cfg" --install
可以使用
--serviceName
和--serviceDisplayName
指定服务名,从而可以安装多个 mogodb 实例启动 mongodb 服务
net start mongodb
设置用户名和密码
设置超级管理员
在命令行中输入
mongo
进入mongodb的交互界面在 admin 库中添加 admin 角色
1
2
3
4
5
6
7
8
9use admin
db.createUser({
user: 'admin', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'root', // 角色
db: 'admin' // 数据库
}]
})设置完成,可以输入
show users
查看是否设置成功。开启验证
找到 MongoDB 安装目录,打开
mongod.cfg
文件,找到以下这句:将
1
#security:
改为
1
2security:
authorization: enabled重启 mongodb
在cmd窗口中
1
2net stop mongodb
net start mongodb也可以在任务管理器中找到相应的服务,然后重新启动
登陆数据库
1
2
3
4
5
6
7// 方式一
mongo
use admin
db.auth('admin', '123456')
// 方式二
mongo admin -u admin -p 123456这时候我们就可以正常访问和操作数据了。
添加数据库用户
我们除了可以设置数据库的超级管理员以外,还可以给每个数据库设置单独的管理员。其只有操作单独数据的一定权限。
1 | use test // 跳转到需要添加用户的数据库 |
常用命令
1 | show users // 查看当前库下的用户 |
MongoDB 数据库默认角色
分类 | role(角色) | 简要说明 |
---|---|---|
数据库用户角色(DB User Roles) | read
readWrite |
为某个数据库创建一个用户, 分配该数据库的读写权力 |
数据库管理员角色(DB Admin Roles) | dbAdmin dbOwner
userAdmin |
拥有创建数据库, 和创建用户的权力 |
集群管理角色(Culster Administration Roles) | clusterAdmin
clusterManager clusterMonitor
hostManager |
管理员组, 针对整个系统进行管理 |
备份还原角色(Backup and Restoration Roles) | backup
restore |
备份数据库, 还原数据库 |
所有数据库角色(All-Database Roles) | readAnyDatabase
readWriteAnyDatabase userAdminAnyDatabase
dbAdminAnyDatabase |
拥有对admin操作的权限 |
Superuser Roles(超级管理员) | root |
dbOwner
userAdmin
userAdminAnyDatabase 这几个角色角色提供了任何数据任何用户的任何权限的能力,拥有这个角色的用户可以在任何数据库上定义它们自己的权限 |