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 公开到外部网络时,务必采取额外的安全措施,如配置身份验证、设置访问控制列表、定期备份数据以及监控数据库活动,以确保安全性和数据保护。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django(三)

1.快速上手 确保app已注册 【settings.py】 编写URL和视图函数对应关系 【urls.py】 编写视图函数 【views.py】 启动django项目 命令行启动python manage.py runserverPycharm启动 1.1 再写一个页面 2. templates模板

基于电商场景的高并发RocketMQ实战-Commitlog基于内存的高并发写入优化、基于JVM offheap的内存读写分离机制

🌈🌈🌈🌈🌈🌈🌈🌈 【11来了】文章导读地址:点击查看文章导读! 🍁🍁🍁🍁🍁🍁&#x1f3…

分布式系统架构设计之分布式通信机制

二、分布式通信机制:保障系统正常运行基石 在分布式系统中,各个组件之间的通信是保障系统正常运行的基石,直接影响到系统的性能、可扩展性以及整体的可维护性。接下来我们就一起看看通信在分布式系统中的重要性,以及一些常用的技…

鸿蒙开发中的坑(持续更新……)

最近在使用鸿蒙开发时,碰到了一些坑,特做记录,如:鸿蒙的preview不能预览,轮播图组件Swiper使用时的问题,console.log() 打印的内容 一、鸿蒙的preview不能预览 首先,只有 ets文件才能预览。 其…

SICP : The Elements of Programming

好的计算机编程语言应具备的三个特性 基础单元表达式,计算机编程语言最最最基础单元,理应具备的表达式组合的能力,能够通过基础单元表达式组合成更复杂的元素抽象的能力,能通过复杂的元素抽象成更高层的单元 基础单元表达式 加 …

外卖系统开发:构建高效、安全的外卖平台

在当今数字化时代,外卖系统成为了餐饮行业不可或缺的一部分。本文将介绍如何使用一些主流的技术和代码片段来开发一个简单而功能强大的外卖系统。 1. 技术选择 在开始外卖系统的开发之前,首先需要选择合适的技术栈。以下是一个常见的技术栈&#xff1…

树莓派Pi4B简介

树莓派是什么?Raspberry Pi(中文名为“树莓派”,简写为RPi,或者RasPi/RPi)是为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,其系统基于Linux。 树莓派4B与树莓派3B/3B参数对比: 具体的实物图如下&#xff1a…

MyBatis——MyBatis的缓存

MyBatis的缓存 创建工程: 1缓存介绍 为什么使用缓存? 首次访问时,查询数据库,并将数据存储到内存中;再次访问时直接访问缓存,减少IO、硬盘读写次数、提高效率 Mybatis中的一级缓存和二级缓存?…

二维码智慧门牌管理系统:提升社区管理智能化水平

文章目录 前言一、全方位信息录入与查询二、公安权限账户访问的公安大数据后台三、社区工作人员申请权限安装录入软件四、业主通过移动终端扫描标准地址二维码门牌自主申报录入五、系统的价值 前言 在数字化时代,社区管理面临着更新流动人口信息、准确录入六实相关…

jenkins Job华为云EIP变更带宽

引言: 在数字化时代,云服务资源的弹性管理是企业降低运营成本、提高效率的关键手段。通过弹性公网IP(EIP)服务,企业可以实现按需计费,优化网络支出。然而,根据业务流量的不同阶段调整计费模式,…

ARM串口通信编程实验

完成:从终端输入选项,完成点灯关灯,打开风扇关闭风扇等操作 #include "gpio.h" int main() {char a;//char buf[128];uart4_config();gpio_config();while(1){//接收一个字符数据a getchar();//发送接收的字符putchar(a);switch(…

网络安全保障领域

计算机与信息系统安全---最主要领域 云计算安全 IaaS、PasS、SaaS(裸机,装好软件的电脑,装好应用的电脑) 存在风险:开源工具、优先访问权、管理权限、数据处、数据隔离、数据恢复、调查支持、长期发展风险 云计算安全关键技术:可信…

华清远见嵌入式学习——ARM——作业3

作业要求: 代码效果图: 代码: led.h #ifndef __LED_H__ #define __LED_H__#define RCC_GPIO (*(unsigned int *)0x50000a28) #define GPIOE_MODER (*(unsigned int *)0x50006000) #define GPIOF_MODER (*(unsigned int *)0x50007000) #defi…

音视频技术开发周刊 | 325

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 AI读心术震撼登顶会!模型翻译脑电波,人类思想被投屏|NeurIPS 2023 在最近举办的NeurIPS大会上,研究人员展示了当代AI更震撼…

FPGA-ZYNQ-7000 SoC在嵌入式系统中的优势

FPGA-ZYNQ-7000 SoC在嵌入式系统中的优势 本章节主要参考书籍《Xilinx Zynq-7000 嵌入式系统设计与实现 基于ARM Cortex-A9双核处理器和Vivado的设计方法 (何宾,张艳辉编著)》 本章节主要讲述FPGA-ZYNQ-7000 SoC在嵌入式系统中的优势,学习笔…

Rancher小白学习之路

官网:http://docs.rancher.cn/docs/rancher1/rancher-service/load-balancer/_indexhttp://docs.rancher.cn/docs/rancher1/rancher-service/load-balancer/_indexRancher2.5集群搭建&K3S生产环境搭建手册 - 知乎 【rancher教程】十年运维大佬两小时带你搞定ran…

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结 测试一:没有添加 自动转化的配置,且domain中的属性名称和数据库的字段名称一致测试二:没有添加自动转化配置i,domain属性名userPassword和数据…

【csapp】cachelab

文章目录 Part APart B32 * 3264 * 6461 * 67 实验全程参考大佬的博客CS:APP3e 深入理解计算机系统_3e CacheLab实验 ,感觉大佬在矩阵转置那块介绍的还是有些简略,我自己又做了点动图加以补充理解。膜拜大佬! Part A 先解决解析命令行参数的…

年龄相关的微环境变化突显了PDGF-C在ER+乳腺癌转移复发中的作用

今天给同学们分享一篇实验文章“Age-associated microenvironmental changes highlight the role of PDGF-C in ER breast cancer metastatic relapse”,这篇文章发表在Nat Cancer期刊上,影响因子为22.7。 结果解读: ER乳腺癌转移复发的同种…

LH7904D 太阳能警示灯 0.4W×2

应用范围: 可安装在电线杆,路灯,围挡,交 通护栏及各种杆式固体等场所起警示作用。 产品特点: 采用进口PS材质; 光控无开关,白天不闪,昏暗环境自动闪烁,无需手动操作,省时省事; …