1、下载安装MongoDB
可以参考菜鸟教程的安装步骤,直到完成创建数据库目录那一步
2、配置mongodb.conf
到上一步虽然启动了mongo服务,但只能在本地访问,需要修改配置文件使得可以远程访问。配置文件如果用tar安装的话,mongodb4.4.4似乎没有初始的conf文件,需要自己创建,然后写入内容如下:
# 创建conf文件
vim /etc/mongodb.conf
# mongodb.conf
dbpath=/var/lib/mongo # 数据库存储目录
logpath=/var/log/mongodb/mongod.log # 日志文件目录
port=27017
logappend=true
fork=true
bind_ip = 0.0.0.0 # 设置为0.0.0.0以开启远程访问
auth=true # 需要身份验证
创建完成以后,我们需要关闭原本的mongo服务,然后用新的配置文件去重启之:
# 关闭mongodb
mongod -f /etc/mongodb.conf --shutdown
# 使用配置文件启动mongodb
mongod -f /etc/mongodb.conf
到这里mongo服务应该正常启动,接下来到firewall中开启27017端口,就可以从远程访问。
3、创建用户,并设置密码和权限
(1)创建admin数据库和用户
# 从终端进入mongo shell
[root@localhost]# mongo
# 创建admin
> use admin # 进入admin数据库
> db.createUser(
{
user: "admin",
pwd: "adminpwd",
roles:[{role:"root",db:"admin"}]
}
)
(2)创建普通数据库和用户
# 创建数据库
> use testdb # 创建testdb数据库
> db.createUser(
{
user: "name",
pwd: "yourpwd",
roles:[{role:"dbOwner",db:"testdb"}]
}
)
这些是mongodb的用户权限:
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
踩坑:之前根据一般的创建用户教程,我尝试了readWrite、dbAdmin等用户权限,发现客户端上的数据库可视化管理工具(比如NoSQLBooster for MongoDB等)无法对数据库内容进行查询等操作,同时,用pymongo去连接并且插入数据时也会报错Not authorized,最后将role中的权限换成dbOwner之后成功解决。