MongoDB的启动停止与基础配置

作者: adm 分类: 教程 发布时间: 2023-08-15

本文全部内容以MongoDB4.2社区版本为基础。
文章目录
一. 基础的数据库配置
二. 启动与停止
启动
停止
三. 创建管理员并登入数据库
一. 基础的数据库配置
  要想启动MongoDB服务端,需要先编辑好配置文件。如下为运行MongoDB的常用基础配置,这份配置可以应对单节点模式的生产环境使用。使用时注意根据实际情况修改日志文件和数据文件路径、端口(默认端口为27017)等,并提前创建好相关目录。

#启用后台运行
processManagement:
   fork: true
   
#绑定IP,“0.0.0.0”即绑定所有ipv4地址,默认为localhost
net:
   bindIp: 0.0.0.0
   port: 27017
   
storage:
#“directoryPerDB”为true时使用单独的目录来存储每个数据库的数据,默认为false
   directoryPerDB: true
#设置MongoDB存储数据的路径
   dbPath: /opt/mongo/data
   
#指定日志输出发送到的文件
systemLog:
   destination: file
   path: "/opt/mongo/mongod.log"
   logAppend: true
   
#启用访问控制
security:
   authorization: enabled

二. 启动与停止
  Linux下默认使用的配置文件路径为/etc/mongod.conf,Windows下默认路径<安装路径>\bin\mongod.cfg,但在启动时我们可以通过 -f 参数指定配置文件路径。如下在Centos以手动指定配置文件路径为例,Windows或其他操作系统类似。

启动

#如为rpm安装方式,在任意目录执行以下命令即可
mongod -f /opt/mongo/mongodb.conf
#若为编译安装或从官网下载的二进制可执行程序,且未将mongo可执行程序加入环境变量,需要先切换到mongodb的bin目录下,然后执行
./mongod -f /opt/mongo/mongodb.conf

停止

#如为rpm安装方式,在任意目录执行以下命令即可
mongod -f /opt/mongo/mongodb.conf --shutdown
#若为编译安装或从官网下载的二进制可执行程序,且未将mongo可执行程序加入环境变量,需要先切换到mongodb的bin目录下,然后执行
./mongod -f /opt/mongo/mongodb.conf --shutdown

或登录MongoDB后,执行以下关闭数据库命令,

use admin
db.shutdownServer();

如下图所示:


三. 创建管理员并登入数据库
  由于上面的配置文件中我们开启了访问控制,所以在启动数据库后需要创建一个管理员用户来执行数据库操作。
在Linux命令窗口登入MongoDB客户端工具,

#如为rpm安装方式,在任意目录执行以下命令即可
mongo 
#若为编译安装或从官网下载的二进制可执行程序,且未将mongo可执行程序加入环境变量,需要先切换到mongodb的bin目录下,然后执行
./mongo

在MongoDB客户端中执行命令数据库指令创建管理员用户。
因为在mongodb.conf开启auth认证,所以需要对数据库用户进行授权。

关闭mongodb进程,mongodb.conf中的auth改为false,重新启动。启动后,admin库下创建超级管理员账户,创建后,把mongodb.conf中的auth改为true,重新启动mongodb。此时,我们可以使用超级管理员来创建一般用户,分别给予不同权限。

use admin  #切换至admin数据库
db.createUser({user:"admin",pwd:"admin",roles:["root"]})  #创建管理员用户
db.auth("admin","admin")  #使用管理员用户登录数据库

如下图所示,创建用户且登录成功后就可以进行数据库操作啦!

Built-In Roles(内置角色):

数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root  
内部角色:__system

这里列举一下mongodb内置角色的作用。

Read:允许用户读取指定数据库。

readWrite:允许用户读写指定数据库。

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile。

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户。

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限。

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限。

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限。

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限。

2、创建普通用户

创建普通用户wangmeimei。

//切换或创建数据库,例:test
use test
db.createUser({user:"wangmeimei", pwd:"123456", roles:[{role:"readWrite",db:"test"}]})

创建普通用户tt。

use test_table
db.createUser({user:"tt",pwd:"123456",roles:[{role:"dbAdmin",db:"test_table"},{role:"readWrite",db:"test_table"},{role:"userAdmin",db:"test_table"}]})

3、查看和删除用户

#切换到admin数据库
use admin
#查看所有用户
db.system.users.find()
#删除用户
db.system.users.deleteOne({user:"wangmeimei"})

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!