CentOS安装MongoDB

CentOS安装MongoDB

文章目录

  • CentOS安装MongoDB
    • 1. 安装并运行
    • 2. 创建用户/密码
    • 3. 测试语句
    • 4. 允许外网访问

1. 安装并运行

在 CentOS 上安装 MongoDB,你可以按照以下步骤进行:

  1. 导入 MongoDB 的 GPG 密钥:

    sudo rpm --import https://www.mongodb.org/static/pgp/server-5.0.asc
    
  2. 创建 MongoDB 的 YUM 存储库文件 /etc/yum.repos.d/mongodb-org-5.0.repo,并使用文本编辑器打开它:

    sudo vi /etc/yum.repos.d/mongodb-org-5.0.repo
    

    在文件中添加以下内容:

    [mongodb-org-5.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
    

    保存并关闭文件。

  3. 安装 MongoDB:

    sudo yum install -y mongodb-org
    
  4. 启动 MongoDB 服务:

    sudo systemctl start mongod
    
  5. 设置 MongoDB 开机自启动:

    sudo systemctl enable mongod
    
  6. 检查 MongoDB 服务状态:

    sudo systemctl status mongod
    

    如果一切正常,你应该会看到 MongoDB 服务已经运行。

  7. 默认情况下,MongoDB 监听在 127.0.0.1 的本地接口上。如果你需要允许远程访问,你需要编辑 MongoDB 配置文件 /etc/mongod.conf 并更改 bindIp 部分以允许所需的 IP 地址。保存更改并重新启动 MongoDB 服务。

  8. 确保防火墙允许 MongoDB 的访问。如果使用默认的 MongoDB 端口 27017,请确保你的防火墙规则允许流量通过该端口。

现在,MongoDB 应该已经安装并在 CentOS 上运行。你可以使用 mongo 命令行客户端或其他 MongoDB 客户端工具连接到数据库。

2. 创建用户/密码

在默认配置下,MongoDB 安装后没有设置密码,因此可以直接通过没有身份验证的方式访问 MongoDB 数据库。这在生产环境中是不安全的,因此建议你设置 MongoDB 的身份验证密码以增强安全性。

以下是在 MongoDB 上设置密码的一般步骤:

  1. 启动 MongoDB 并连接到数据库服务器。

    mongo
    
  2. 切换到 admin 数据库。你将在 admin 数据库中创建用户。

    use admin
    
  3. 创建一个管理员用户,并为其分配密码。在这个例子中,我们创建一个用户名为 adminUser 的管理员用户,你可以替换为你想要的用户名和密码。

    db.createUser({ user: "adminUser", pwd: "yourPassword", roles: ["root"] })
    

    请确保将 yourPassword 替换为你选择的实际密码。

  4. 退出 MongoDB。

    quit()
    
  5. 编辑 MongoDB 配置文件 /etc/mongod.conf

    sudo vi /etc/mongod.conf
    

    添加以下行以启用身份验证:

    security:authorization: enabled
    

    保存并关闭文件。

  6. 重新启动 MongoDB 服务。

    sudo systemctl restart mongod
    

现在,MongoDB 已经配置了身份验证,你需要提供用户名和密码才能访问数据库。在命令行上连接到 MongoDB 时,你可以使用 -u-p 选项提供用户名和密码:

mongo -u adminUser -p yourPassword --authenticationDatabase admin

请确保将 adminUseryourPassword 替换为你实际设置的用户名和密码。

3. 测试语句

要测试 MongoDB 数据库中的查询语句或执行其他操作,你可以使用 MongoDB 的命令行客户端 mongo。以下是一些示例查询语句和其他操作:

  1. 连接到 MongoDB 数据库:

    mongo -u adminUser -p yourPassword --authenticationDatabase admin
    

    请将 adminUseryourPassword 替换为你的用户名和密码。

  2. 列出所有数据库:

    show dbs
    
  3. 切换到一个数据库:

    use yourDatabase
    

    yourDatabase 替换为你要使用的实际数据库。

  4. 插入文档到集合:

    db.yourCollection.insert({ key: "value" })
    

    yourCollection 替换为你要插入文档的集合名称,keyvalue 替换为你要插入的字段和值。

  5. 查询集合中的文档:

    db.yourCollection.find()
    

    这将返回集合中的所有文档。

  6. 更新文档:

    db.yourCollection.update({ key: "value" }, { $set: { keyToUpdate: "newValue" } })
    

    这将更新匹配条件的文档中的字段值。

  7. 删除文档:

    db.yourCollection.remove({ key: "value" })
    

    这将删除匹配条件的文档。

  8. 显示集合中的文档数:

    db.yourCollection.count()
    

    这将返回集合中的文档数量。

4. 允许外网访问

要允许外网访问 MongoDB,你需要在 MongoDB 的配置文件中做一些更改,以及根据你的环境设置防火墙规则。以下是一般步骤:

  1. 编辑 MongoDB 配置文件:

    打开 MongoDB 的配置文件,通常位于 /etc/mongod.conf。你可以使用文本编辑器打开它,例如:

    sudo vi /etc/mongod.conf
    
  2. 在配置文件中找到 bindIp 配置项。默认情况下,它可能设置为 127.0.0.1,这只允许本地访问。你需要更改它以允许外网访问。

    bindIp: 0.0.0.0
    

    这将允许 MongoDB 侦听所有网络接口上的连接。

    请注意,将 bindIp 设置为 0.0.0.0 可能会带来一定的安全风险,因为它会使 MongoDB 开放给所有的IP地址。因此,你应该采取其他措施来限制对 MongoDB 的访问,如设置身份验证和访问控制列表(ACL)。

  3. 保存并关闭配置文件。

  4. 重新启动 MongoDB 服务:

    sudo systemctl restart mongod
    
  5. 设置防火墙规则:

    如果你的服务器上启用了防火墙(如Firewalld),你需要确保打开 MongoDB 的监听端口(默认是27017)以允许外部访问。你可以运行以下命令:

    sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
    sudo firewall-cmd --reload
    

    这将添加一个永久的规则,允许外部连接到 MongoDB 的端口。

现在,你的 MongoDB 服务器应该已经允许外部访问。但请注意,在将 MongoDB 公开到外部网络时,务必采取额外的安全措施,如配置身份验证、设置访问控制列表、定期备份数据以及监控数据库活动,以确保安全性和数据保护。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/225321.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React快速入门之组件

组件 文件&#xff1a;Profile.js export default function Profile({isPacked true&#xff0c;head,stlyeTmp,src,size 80}) {if (isPacked) {head head " ✔";}return (<div><h1>{head}</h1><imgsrc{src}alt"Katherine Johnson&q…

MongoDB ReplicaSet 部署

文章目录 前言1. 环境准备2. 生成密钥3. 配置参数4. 创建 ReplicaSet5. 副本集维护5.1 新增成员5.2 移除节点5.4 主节点降级5.5 阻止选举5.6 允许副本节点读5.7 延迟观测 6. 连接副本集 后记 前言 本篇文章介绍 MongoDB ReplicaSet 如何搭建&#xff0c;及常用的维护方法。 1…

Redis-实践知识

转自极客时间Redis 亚风 原文视频&#xff1a;https://u.geekbang.org/lesson/535?article681062 Redis最佳实践 普通KEY Redis 的key虽然可以自定义&#xff0c;但是最好遵循下面几个实践的约定&#xff1a; 格式&#xff1a;[业务名称]:[数据名]:[id] 长度不超过44字节 不…

【Jmeter】Jmeter基础9-BeanShell介绍

3、BeanShell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法。 3.1、Jmeter中使用的BeanShell 在Jmeter中&#xff0c;除了配置元件&#xff0c;其他类型的元件中都有BeanShell。BeanShell 是一种完全符合Java语法规范的脚本语言,并且又拥…

TCP并发服务器

一.进程实现TCP并发服务器 #include <func.h> #define PORT 6666 #define IP "192.168.124.42"void handler(int arm) {while(waitpid(-1,NULL,WNOHANG) > 0); } int main(int argc, const char *argv[]) {//接受17号信号signal(17, handler);i…

Matlab之State Flow

打开方式 方式一&#xff1a;在命令窗口输入State Flow或者简写sf就能打开&#xff0c;并且会自动打开State Flow 的Library。从左到右分别是图表、真值表、状态转换表、例子、顺序查看&#xff0c;可以加入到Simulink当中。 方式二&#xff1a;从Simulink Library里面添加Sta…

EB tresos 配置I2c - 实现与PF8200的读写操作

文章目录 前言一、EB工具链配置1、I2c模块1&#xff09;新建模块2&#xff09;配置General3&#xff09;配置I2cChannel 2、Port模块1&#xff09;配置SDA2&#xff09;配置SCL 二、代码分析1、申明一个I2c配置结构体数组&#xff0c;用于I2c所有读操作。2、搭建读操作函数 三、…

得物大模型平台,业务效果提升实践

一、背景 得物大模型训练与推理平台上线几个月后&#xff0c;我们与公司内部超过 10 个业务领域展开了全面的合作。在一些关键业务指标方面&#xff0c;取得了显著的成效&#xff0c;例如&#xff1a; 效率相关部门的合作&#xff0c;多维度打标总正确率取得 2 倍以上提升。利…

Spring中的上下文工具你写的可能有bug

文章目录 前言功能第一种&#xff1a;ApplicationContext第二种方式&#xff1a;ApplicationContextAware第三种&#xff1a;BeanFactoryPostProcessor 源码第一种第二种第三种 前言 本篇是针对如何写一个比较好的spring工具的一个探讨。 功能 下面三种方式&#xff0c;你觉…

智能三维数据虚拟现实电子沙盘

一、概述 易图讯科技&#xff08;www.3dgis.top&#xff09;以大数据、云计算、虚拟现实、物联网、AI等先进技术为支撑&#xff0c;支持高清卫星影像、DEM高程数据、矢量数据、无人机倾斜摄像、BIM模型、点云、城市白模、等高线、标高点等数据融合和切换&#xff0c;智能三维数…

CTF特训(一):ctfshow-RCE挑战

CTF特训(一)&#xff1a;ctfshow-RCE挑战 FLAG&#xff1a;可后来&#xff0c;除了梦以外的地方&#xff0c;我再也没有见过你 专研方向: 代码审计&#xff0c;PHP 每日emo&#xff1a;其实挺迷茫的&#xff0c;不知道该干什么,(骗你的) RCE挑战1 <?phperror_reporting(0)…

Qt Creator可视化交互界面exe快速入门3

上一期介绍的通过Qt Creator的组件直接拖拽的方式完成了一个界面&#xff0c;这期介绍按钮的信号交互。 专有名称叫信号与槽 实现方法1&#xff1a; 鼠标右键选择转化为槽就会跳出这样的界面 选择第一个为单击信号。然后就会跳转到代码界面。多了on_pushButton_clicked()。 …

2024深入评测CleanMyMac X4.14.6破解版新的功能

随着时间的推移&#xff0c;我们的Mac电脑往往会变得越来越慢&#xff0c;存储空间变得越来越紧张&#xff0c;这时候一个优秀的清理工具就显得尤为重要。作为一款备受好评的Mac清理工具&#xff0c;它能够为你的Mac带来全方位的清理和优化。在本文中&#xff0c;我们将深入评测…

ADRC-跟踪微分器TD的Maltab实现及参数整定

目录 问题描述&#xff1a; 跟踪微分器TD基本概念&#xff1a; Matlab及其实现&#xff1a; 跟踪效果&#xff1a; 例1&#xff1a;跟踪信号 sin(t) 0.5*rand(1,1)。 例2&#xff1a;跟踪部分时段为方波的信号&#xff0c;具体形式见代码get_command。 参数整定&#xf…

HarmonyOS - 基础组件绘制

文章目录 所有组件开发 tipsBlankTextImageTextInputButtonLoadingProgress 本文改编自&#xff1a;<HarmonyOS第一课>从简单的页面开始 https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101667360160710997 所有组件 在 macOS 上&#xff0c;组…

【WSL2】安装和配置ubuntu

文章目录 1. 安装WSL22. 安装ubuntu2.1. 通过Microsoft Store2.1. 通过命令行 3. ubuntu的使用3.1. 创建管理员root账户3.2. 换源3.3. 安装图形化界面 1. 安装WSL2 在控制面板 - 程序 - 程序与功能中点击启用或关闭Windows功能&#xff0c;选择 虚拟机平台适用于Linux的Window…

Android Studio 如何隐藏默认标题栏

目录 前言 一、修改清单文件 二、修改代码 三、更多资源 前言 在 Android 应用中&#xff0c;通常会有一个默认的标题栏&#xff0c;用于显示应用的名称和一些操作按钮。但是&#xff0c;在某些情况下&#xff0c;我们可能需要隐藏默认的标题栏&#xff0c;例如自定义标题栏…

File Inclusion(Pikachu)

File Inclusion(local) 这里随便点击一个提交 观察url&#xff0c;显示是一个文件file1.php 可以直接通过url修改这个文件 找到自己的文件&#xff08;本地文件&#xff09;shell.php的路径写上去 就可以看到 File Inclusion&#xff08;remote&#xff09; 提交的是一个目标…

桶装水送水小程序:提升服务质量的利器

随着移动互联网的发展&#xff0c;越来越多的消费者通过手机在线购物和订购商品。如果你是一名桶装水供应商&#xff0c;想要拓展线上业务&#xff0c;那么开发一个桶装水微信小程序将是一个明智的选择。本文将指导你从零开始开发一个桶装水微信小程序&#xff0c;让你轻松完成…

Oracle初始化参数修改后,是否需要重启才能生效

可以查看 v$parameter或v$parameter2动态性能视图的ISSYS_MODIFIABLE列。此列指示是否可以使用 ALTER SYSTEM 更改参数以及更改何时生效&#xff1a; IMMEDIATE - 无论用于启动实例的参数文件的类型如何&#xff0c;都可以使用 ALTER SYSTEM 更改参数。 更改立即生效。DEFERRE…