当前位置: 代码迷 >> 综合 >> Ubantu 启动 MongoDB并添加数据库和用户
  详细解决方案

Ubantu 启动 MongoDB并添加数据库和用户

热度:97   发布时间:2024-01-28 21:31:59.0
  1. 启动时遇到的错误,地址被占用,那么先杀死一下mongo的进程, Address already in use
netstat -lntp # 找到mongo的进程id
kill -9  2333
  1. 如果报错 /data/db 目录不存在 ,那么先创建一下
mkdir /data/db/ -p
  1. 后台启动
nohup mongod >/dev/null 2>&1 &
  1. 登录创建数据库
show dbs; #查看数据库
use mydb; #创建数据库
db.mydb.insert({'hello':'world'}); #往数据库里插入数据
# 创建一个用户并且赋值权限
db.createUser({user: "admin",pwd: "admin",roles: [{ role: "dbAdmin", db: "netcafe_admin" }]}
)

注意角色对应的库,确认是否可用于自己的db

MongoDB 目前内置了 7 个角色。

数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root;这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system

这些角色对应的作用如下:

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

  相关解决方案