宝塔上使用mongodb的使用方法和注意事项

前言

之前在搬瓦工购置的VPS一直闲着,所以打算用来存放tushare上的数据。 但鉴于宝塔的mongodb没有提供图形化界面管理,所以还是记录一下设置过程。

设置账号密码

  1. 宝塔上的monogdb默认是不需要账号密码,如果你的前端和后端数据库都是在同一VPS上,不设置是没有问题的,因为只运行内网网站访问。但如何你的mongodb数据库需要开放给外网的话,那么需要手动设置一下账号密码。
  2. 宝塔上的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


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 [email protected]