安装、启动和关闭

环境

CentOS Linux release 7.9.2009

安装

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.6.tgz

tar -zxvf mongodb-linux-x86_64-rhel70-4.4.6.tgz

配置环境变量

为了方便执行MongoDB命令,我们可以添加环境变量。

vim /etc/profile 

# 环境变量
export MONGODB_HOME=/www/server/mongodb
PATH=$PATH:$MONGODB_HOME/bin

source /etc/profile # 重新加载环境变量

启动服务

方式一

–dbpath :指定数据文件存放目录

–logpath :指定日志文件,注意是指定文件不是目录

–logappend :使用追加的方式记录日志

–port:指定端口,默认为27017

–bind_ip:默认只监听localhost网卡

–fork: 后台启动

–auth: 开启认证模式

bin/mongod --port=27017 --dbpath=/data --logpath=/log --bind_ip=0.0.0.0 --fork 
方式二:利用配置文件启动服务
mongod -f ./config.conf --fork

关闭服务

方式一
 mongod --port=27017 --dbpath=/data --shutdown
方式二
mongo --port=27017

use admin
db.shutdownServer()

Mongo Shell

Mongo Shell是MongoDB的交互式JavaScript Shell界面,它为系统管理员提供了强大的界面,并为开发人员提供了直接测试数据库查询和操作的方法。

–port:指定端口,默认为27017

–host:连接的主机地址,默认127.0.0.1

mongo --port=27017
[root@VM-24-2-centos ~]# mongo --port=27017
MongoDB shell version v4.4.6
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("9ef298d6-6914-4e1d-8038-b063f8e42d2b") }
MongoDB server version: 4.4.6
>

JavaScript支持

Mongo Shell是基于JavaScript语法的,MongoDB使用了SpiderMonkey作为其内部的JavaScript解释器引擎,这是由Mozilla官方提供的JavaScript内核解释器,该解释器也被同样应用于Firefox浏览器。

SpiderMonkey对ECMA Script标准兼容性非常好,可以支持ECMA Script 6。可以通过下面的命令检查JavaScript解释器的版本。

> interpreterVersion()
MozJS-60

Mongo Shell常用命令

常用命令
命令说明
show dbs / show databases显示数据库列表
show users显示当前数据库的用户列表
show roles显示当前数据库的角色列表
show profiles显示最近发生的操作
use db_name切换数据库,不存在则新建数据库
db.dropDatabase()删除数据库
show collections / show tables显示当前数据库的集合列表
db.collection_name.stats()查看集合详情
db.collection_name.drop()删除集合
load(“js_name.js”)执行js脚本
help()查看MongoDB支持的命令
db.help()查看当前数据库支持的方法
db.collection_help()查看集合的帮助信息
db.version()查看数据库版本
exit / quit()退出当前Mongo Shell
创建集合

db.createCollection(name, options)

options参数:

字段类型描述是否必填
cappedboolean为true则创建固定集合,且必须指定size参数大小;当达到最大值时会自动覆盖最早的文档N
autoIndexIDboolean为true则自动在_id字段创建索引,默认为falseN
sizenum为固定集合指定最大值,以千字节计N
maxnum指定固定集合中包含文档的最大数量N

注意: 当集合不存在时,向集合中插入文档也会创建集合

安全认证

常用权限

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

创建管理员账号

# 设置管理员用户名密码需要切换到admin库
use admin
#创建管理员
db.createUser({user:"sonnie001",pwd:"sonnie001",roles:["root"]})
# 查看所有用户信息
show users
#删除用户
db.dropUser("sonnie001")

用户认证

> use admin
switched to db admin
> db.auth("sonnie001","sonnie001")
Error: Authentication failed.
0
> db.auth("sonnie001","001")
1

创建应用数据库用户

> use appdb
switched to db appdb
> db.createUser({user:"app",pwd:"app",roles:["dbOwner"]})
Successfully added user: { "user" : "app", "roles" : [ "dbOwner" ] }

默认情况下,MongoDB不会启用鉴权,以鉴权模式启动MongoDB

mongod -f ./config.conf --auth

启用鉴权之后,连接MongoDB的相关操作都需要提供身份认证

mongo 127.0.0.1:27017 -u sonnie001 -p 001 --authenticationDatabase=admin

启用鉴权,以鉴权模式启动MongoDB

mongod -f ./config.conf --auth

启用鉴权之后,连接MongoDB的相关操作都需要提供身份认证

mongo 127.0.0.1:27017 -u sonnie001 -p 001 --authenticationDatabase=admin
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐