Linux 安装MongoDB数据库及命令使用

从0学习mongodb4运维与开发-学习视频教程-腾讯课堂https://ke.qq.com/course/3854528?saleToken=2635699&from=pclink

一、linux安装MongoDB:安装MongoDB社区版

1、下载MongoDB Community Server

下载地址:MongoDB Community Download | MongoDB

 2、环境准备:linux系统: centos7

#下载MongoDB wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.9.tgz tar -zxvf mongodb-linux-x86_64-rhel70-4.4.9.tgz

启动MongoDB Server

#创建dbpath和logpath

mkdir -p /mongodb/data /mongodb/log

#进入mongodb目录,启动mongodb服务

bin/mongod --port=27017 --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log \ --bind_ip=0.0.0.0 --fork

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

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

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

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

--bind_ip:默认只监听localhost网卡

--fork: 后台启动

--auth: 开启认证模式

启动成功

添加环境变量

修改/etc/profile,添加环境变量,方便执行MongoDB命令

export MONGODB_HOME=/usr/local/soft/mongodb

PATH=$PATH:$MONGODB_HOME/bin

然后执行source /etc/profile 重新加载环境变量

利用配置文件启动服务

编辑/mongodb/conf/mongo.conf文件,内容如下:注意:一定要yaml格式

systemLog:
  destination: file
  path: /mongodb/log/mongod.log # log path
  logAppend: true
storage:
  dbPath: /mongodb/data # data directory
  engine: wiredTiger  #存储引擎
  journal:            #是否启用journal日志
    enabled: true
net:
  bindIp: 0.0.0.0
  port: 27017 # port
processManagement:
  fork: true

启动mongod(-f 选项表示将使用配置文件启动mongodb)

mongod -f /mongodb/conf/mongo.conf

关闭MongoDB服务

方式1:

mongod --port=27017 --dbpath=/mongodb/data --shutdown

 方式2:

进入mongo shell

use admin

db.shutdownServer()

二、Mongo shell 使用

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

bin/mongo --port=27017

bin/mongo localhost:27017

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

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

JavaScript支持

mongo shell是基于JavaScript语法的,MongoDB使用了SpiderMonkey作为其内部的JavaScript解释器引擎,这是由Mozilla官方提供的JavaScript内核解释器,该解释器也被同样用于大名鼎鼎的Firefox浏览器产品之中。SpiderMonkey对ECMA Script标准兼容性非常好,可以支持ECMA Script 6。可以通过下面的命令检查JavaScript解释器的版本:

mongo shell常用命令

命令

说明

show dbs | show databases

显示数据库列表

use 数据库名

切换数据库,如果不存在创建数据库

db.dropDatabase()

删除数据库

show collections | show tables

显示当前数据库的集合列表

db.集合名.stats()

查看集合详情

db.集合名.drop()

删除集合

show users

显示当前数据库的用户列表

show roles

显示当前数据库的角色列表

show profile

显示最近发生的操作

load("xxx.js")

执行一个JavaScript脚本文件

exit | quit()

退出当前shell

help

查看mongodb支持哪些命令

db.help()

查询当前数据库支持的方法

db.集合名.help()

显示集合的帮助信息

db.version()

查看数据库版本

数据库操作

#查看所有库

show dbs

# 切换到指定数据库,不存在则创建

use test

# 删除当前数据库

db.dropDatabase()

集合操作

#查看集合

show collections

#创建集合

db.createCollection("emp")

#删除集合

db.emp.drop()

创建集合语法

db.createCollection(name, options)

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

字段

类型

描述

capped

布尔

(可选)如果为true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。

size

数值

(可选)为固定集合指定一个最大值(以字节计)。

如果 capped 为 true,也需要指定该字段。

max

数值

(可选)指定固定集合中包含文档的最大数量。

三、 安全认证

创建管理员账号

# 设置管理员用户名密码需要切换到admin库
use admin  
#创建管理员
db.createUser({user:"fox",pwd:"fox",roles:["root"]})
# 查看当前数据库所有用户信息 
show users 
#显示可设置权限
show roles 
#显示所有用户
db.system.users.find() 

 常用权限

权限名

描述

read

允许用户读取指定数据库

readWrite

允许用户读写指定数据库

dbAdmin

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

dbOwner

允许用户在指定数据库中执行任意操作,增、删、改、查等

userAdmin

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

clusterAdmin

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

readAnyDatabase

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

readWriteAnyDatabase

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

userAdminAnyDatabase

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

dbAdminAnyDatabase

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

root

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

重新赋予用户操作权限

db.grantRolesToUser( "fox" , [ 
    { role: "clusterAdmin", db: "admin" } ,
     { role: "userAdminAnyDatabase", db: "admin"},
     { role: "userAdminAnyDatabase", db: "admin"},
     { role: "readWriteAnyDatabase", db: "admin"} 
 ])

删除用户

db.dropUser("fox")
#删除当前数据库所有用户
db.dropAllUser()

用户认证,返回1表示认证成功

 创建应用数据库用户

use appdb
db.createUser({user:"appdb",pwd:"fox",roles:["dbOwner"]})

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

mongod -f /mongodb/conf/mongo.conf --auth

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

mongo 192.168.65.174:27017 -u fox -p fox --authenticationDatabase=admin

从0学习mongodb4运维与开发-学习视频教程-腾讯课堂https://ke.qq.com/course/3854528?saleToken=2635699&from=pclink​​​​​​​

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

30岁老阿姨

支持一下哦!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值