2021-04-26

本文详细介绍了MongoDB的安装过程,包括下载、解压、创建数据目录和日志目录,以及配置文件的编写。接着讲解了如何启动MongoDB服务,并将其添加到环境变量中。此外,还强调了配置文件的格式要求。文章进一步讨论了MongoDB的安全配置,如创建超级管理员用户、开启权限认证,并展示了如何添加数据库用户。最后,提到了使用NavicatPremium15作为客户端工具连接MongoDB的步骤。
摘要由CSDN通过智能技术生成

  实战 | MongoDB的安装配置

  安装

  下载MongoDB社区版

  https://www.mongodb.com/try/download/community

 

  上传至指定目录,如 /app/soft

  解压文件

  tar -zxvf mongodb-linux-x86_64-rhel62-4.4.4.tgz

  修改名字

  mv mongodb-linux-x86_64-rhel62-4.4.4 MongoDB

  在MongoDB目录下创建数据目录及日志目录

  [root@oadev soft]# cd MongoDB/

  [root@oadev MongoDB]# mkdir -p ./data/db

  [root@oadev MongoDB]# mkdir ./log

  

 

  在安装目录创建MongoDB配置文件 vi mongodb.conf内容如下:

  systemLog:

  #MongoDB发送所有日志输出的目标指定为文件

  destination: file

  path: "/app/soft/MongoDB/log/mongodb.log"

  logAppend: true

  storage:

  #mongod实例存储其数据的目录

  dbPath: "/app/soft/MongoDB/data/db"

  journal:

  #启用或禁用持久性日志以确保数据文件保持有效和可恢复。

  enabled: true

  processManagement:

  #启用在后台运行mongos或mongod进程的守护进程模式。

  fork: true

  net:

  #服务实例绑定的IP,默认是localhost

  bindIp: 0.0.0.0

  port: 27017

  配置文件如果内容不正确会导致mongodb服务起不起来,mongodb的配置文件要求k:v这种形式的:后面必须接空格并且文件中不能有tab缩进,必须是空格缩进

  启动MongoDB 进入bin目录,执行以下命令

  ./mongod -f /app/soft/MongoDB/mongodb.conf

  

 

  查看启动结果

  使用命令 ps aux | grep mongod 验证是否正常启动

 

  或者在bin目录下执行 ./mongo进入命令行界面

 

  将mongdb添加进环境变量

  使用命令编辑配置文件 vim /etc/profile,在最后加入MongoDB的配置 export PATH=$PATH:/app/soft/MongoDB/bin

 

  这样在任何地方都可以通过mongo指令进入命令行界面了

  安全配置

  通过上面的安装MongoDB目前还处于裸奔状态,我们必须给其配置上用户密码认证登录。首先我们给MongoDB配置一个超级管理员,操作步骤如下:

  配置超级管理员

  创建管理员账号 在任意目录中输入mongo进入命令行界面(之前已经添加过环境变量)

  > use admin

  switched to db admin

  > db.createUser({user:"root",pwd:"xxxxxx",roles:[{role:"root",db:"admin"}]})

  用户添加成功会出现:Successfully added user和添加的用户信息。

  user : "用户名",

  pwd : "密码”,

  roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。

  注意一点,帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。

  2. 开启权限认证

  退出mongodb命令行并修改配置文件mongodb.conf,在最后开启权限认证

  security:

  authorization: enabled

  重启MongoDB,使权限认证生效

  重新进入mongo命令行,此时可以正常进入,但是不能执行mongo命令,如执行 show dbs没有任何信息

 

  使用账号密码登录

  > use admin

  switched to db admin

  > db.auth("root","xxxxxx")

  或直接使用下面命令登录

  mongo admin -u root -p xxxxxx

  添加数据库用户

  我们除了需要设置数据库的超级管理员以外,还可以给每个数据库设置单独的管理员。其只有操作单独数据的一定权限。

  > use accesslog

  switched to db accesslog

  > db.createUser({

  user: 'accesslog', //用户名

  pwd: 'xxxxxx', //密码

  roles:[{

  role: 'readWrite', //角色

  db: 'accesslog' //数据库

  }]

  })

  权限相关命令

  show users // 查看当前库下的用户

  db.dropUser('accesslog') // 删除用户

  db.updateUser('admin', {pwd: 'xxxxxx'}) // 修改用户密码

  db.auth('admin', 'xxxxxx') // 密码认证

  MongoDB 数据库默认角色

  数据库用户角色: read、readWrite

  数据库管理角色: dbAdmin、dbOwner、userAdmin

  集群管理角色(admin): clusterAdmin、clusterManager、clusterMonitor、hostManager

  备份恢复角色(admin): backup、restore

  所有数据库角色(admin): readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase

  超级用户角色(admin): root

  客户端连接

  这里我们使用 Navicat Premium 15 作为MongoDB客户端工具,当然也可以使用其他的。

  

 

  在验证模式中选择Password选项后出现用户名密码输入框。

  连接上后由于没有集合数据,所以此时看不到集合内容,这里我们先新建一个查询并通过如下语句创建一条记录

  use accesslog;

  db.gatelog.insert({

  title: 'Hello,MongoDB',

  by: 'JAVA日知录',

  url: 'http://www.javadaily.cn',

  webchat: 'jianzh5'

  });

  

 

  执行完成后就能看到数据了。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值