▌前言
之前在搬瓦工购置的VPS一直闲着,所以打算用来存放tushare上的数据。 但鉴于宝塔的mongodb没有提供图形化界面管理,所以还是记录一下设置过程。
▌设置账号密码
- 宝塔上的monogdb默认是不需要账号密码,如果你的前端和后端数据库都是在同一VPS上,不设置是没有问题的,因为只运行内网网站访问。但如何你的mongodb数据库需要开放给外网的话,那么需要手动设置一下账号密码。
- 宝塔上的monogdb是没有提供图形化界面管理的,因此不能直接设置账号密码。我们需要通过SSH终端来设置。
▌在SSH终端上输入命令链接数据库
mongo --port 27017
▌进入admin数据库新建管理员账号
use admin
▌创建超级管理员
db.createUser(
{
user: "bingwong",
pwd: "bingwongPwd",
roles: [ { role: "root", db: "admin" } ]
}
)
设置完成后输入 show users
查看是否已经成功创建新管理员账户。
▌开启密码验证
将authorization:disabled
改为authorization:enabled
, 记得重启mongodb才能生效。
▌登录数据库
// 方式一
mongo
use admin
db.auth('bingwong', 'bingwongPwd')
// 方式二
mongo admin -u bingwong -p bingwongPwd
▌添加普通数据库用户
假设我们的mongodb里面有A、B、C三个数据库,我们可以给每个数据库单独设置用户和权限。
use A // 跳转到需要添加用户的数据库A
db.createUser({
user: 'Aadmin', // 用户名
pwd: 'AadminPwd', // 密码
roles:[{
role: 'readWrite', // 角色
db: 'A' // 数据库名
}]
})
注:
这里是不同权限对应的名称
数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
超级用户角色:root
▌mongodb 允许外网访问
▌设置bind IP
▌端口
在宝塔安全
防火墙上放行端口27017
。