MongoDB的启动停止与基础配置
本文全部内容以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"})