实战 | MongoDB的安装配置

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 配置文件如果内容不正确会导致mongodb服务起不起来,mongodb的配置文件要求k:v这种形式的:后面必须接空格并且文件中不能有tab缩进,必须是空格缩进。

安装


  1. 下载MongoDB社区版
    https://www.mongodb.com/try/download/community


1.png


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


  1. 解压文件
    tar -zxvf mongodb-linux-x86_64-rhel62-4.4.4.tgz


  1. 修改名字
    mv mongodb-linux-x86_64-rhel62-4.4.4 MongoDB


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


[root@oadevsoft]#cdMongoDB/[root@oadevMongoDB]#mkdir-p ./data/db[root@oadevMongoDB]#mkdir ./log


2.png


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


systemLog:
#MongoDB发送所有日志输出的目标指定为文件destination: filepath: "/app/soft/MongoDB/log/mongodb.log"logAppend: truestorage:
#mongod实例存储其数据的目录dbPath: "/app/soft/MongoDB/data/db"journal:
#启用或禁用持久性日志以确保数据文件保持有效和可恢复。enabled: trueprocessManagement: 
#启用在后台运行mongos或mongod进程的守护进程模式。fork: truenet:
#服务实例绑定的IP,默认是localhostbindIp: 0.0.0.0port: 27017


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


  1. 启动MongoDB 进入bin目录,执行以下命令
    ./mongod -f /app/soft/MongoDB/mongodb.conf


3.png


  1. 查看启动结果
    使用命令 ps aux | grep mongod 验证是否正常启动


4.png


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


5.png


  1. 将mongdb添加进环境变量
    使用命令编辑配置文件 vim /etc/profile,在最后加入MongoDB的配置export PATH=$PATH:/app/soft/MongoDB/bin


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


安全配置


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


配置超级管理员


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


>useadminswitchedtodbadmin>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


  1. 重启MongoDB,使权限认证生效


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


7.png


 3.使用账号密码登录


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


或直接使用下面命令登录


mongoadmin-uroot-pxxxxxx


添加数据库用户


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


>useaccesslogswitchedtodbaccesslog>db.createUser({
user: 'accesslog',  //用户名pwd: 'xxxxxx',  //密码roles:[{
role: 'readWrite', //角色db: 'accesslog'//数据库   }]
 })


权限相关命令


showusers// 查看当前库下的用户db.dropUser('accesslog')  // 删除用户db.updateUser('admin', {pwd: 'xxxxxx'})  // 修改用户密码db.auth('admin', 'xxxxxx')  // 密码认证


MongoDB 数据库默认角色


  1. 数据库用户角色:read、readWrite


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


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


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


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


  1. 超级用户角色(admin):root


客户端连接


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


8.png

 

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


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


useaccesslog;
db.gatelog.insert({
title: 'Hello,MongoDB',   
by: 'JAVA日知录',
url: 'http://www.javadaily.cn',
webchat: 'jianzh5'});


9.png


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


10.png


以上,希望对你有所帮助!

目录
相关文章
|
Android开发
【Android 逆向】IDA 工具使用 ( 十六进制视图 Hex View-1 | 结构体视图 Structures | 枚举视图 Enums | 导入视图 Import | 导出视图 )
【Android 逆向】IDA 工具使用 ( 十六进制视图 Hex View-1 | 结构体视图 Structures | 枚举视图 Enums | 导入视图 Import | 导出视图 )
698 0
【Android 逆向】IDA 工具使用 ( 十六进制视图 Hex View-1 | 结构体视图 Structures | 枚举视图 Enums | 导入视图 Import | 导出视图 )
Linux:nohup、&、 2>&1、/dev/null
Linux:nohup、&、 2>&1、/dev/null
|
自然语言处理 算法 数据可视化
NLP-基于bertopic工具的新闻文本分析与挖掘
这篇文章介绍了如何使用Bertopic工具进行新闻文本分析与挖掘,包括安装Bertopic库、加载和预处理数据集、建立并训练主题模型、评估模型性能、分类新闻标题、调优聚类结果的详细步骤和方法。
NLP-基于bertopic工具的新闻文本分析与挖掘
|
SQL DataWorks 监控
DataWorks操作报错合集之在调用数据服务API时返回的错误码是"ODPS-0410051",并且错误信息提示"Invalid credentials - accessKeyId not found",该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
228 0
|
XML 存储 数据格式
RAG效果优化:高质量文档解析详解
本文关于如何将非结构化数据(如PDF和Word文档)转换为结构化数据,以便于RAG(Retrieval-Augmented Generation)系统使用。
919 11
|
安全 前端开发 Linux
显示子系统、显示子前后端、LinuxFB与Wayland的区别分析
显示子系统、显示子前后端、LinuxFB与Wayland的区别分析
|
存储 缓存 安全
Python教程:深入理解 Python 字典(Dict)
Python 中的字典(Dictionary)是一种非常重要的数据结构,它提供了灵活的键值对存储方式,适用于各种实际编程场景。本文将带领您探索 Python 字典的全貌,从基础概念到高级应用,让您全面了解并熟练运用 Python 字典。
386 3
|
NoSQL 关系型数据库 网络安全
前后端分离项目Docker部署指南(上)
前后端分离项目Docker部署指南(上)
1223 1
|
安全 Windows
Windows Server 2016 备份和灾难恢复-1
备份是指将系统中数据的副本按一定的策略储存到安全的地方,而还原是指备份的反向过程,备份的目的是在系统发生故障或误操作后,利用备份信息还原数据,从而尽可能减小损失。备份的重要性只有在需要还原的时候才能体现出来,为了提高数据备份操作的效率,很多人喜欢用价格昂贵,操作复杂的专业备份工具来实现。其实,我们完全可以利用系统自带的数据备份功能来完成。在WindowsServer2016中,可以利用 Windows Server Backup进行数据的备份和恢复。
722 0
Windows Server 2016 备份和灾难恢复-1
|
供应链 安全 Cloud Native
Java基层医疗云HIS系统源码,病患挂号、问诊、电子病历、开药发药、会员管理、统计查询、医生站和护士站
针对基层医院的业务特点,实现以财务核算为基础,以临床医疗服务为中心的全程信息化管理,主要包括以下业务模块:门诊住院一卡通收费管理、以电子病历为核心的门急诊医护工作站、药品管理、医技管理、检验(LIS)、检查(PACS)、远程医疗等。基层医生在接诊过程中可随时调阅、更新患者的健康档案,实现诊疗服务与公共卫生服务联动。
219 3