安装与配置MongoDB 6.0以支持远程连接

devtools/2024/12/23 6:57:56/

安装与配置MongoDB 6.0以支持远程连接

目录
  1. 安装curl工具
  2. 下载并导入MongoDB 6.0 PGP密钥
  3. 向APT导入MongoDB 6.0版软件包的资源链接
  4. 安装MongoDB依赖libssl1.1
  5. 安装MongoDB
  6. 启动并检查MongoDB服务状态
  7. 进入MongoDB Shell交互式执行环境
  8. 设置MongoDB开机自启
  9. 配置MongoDB允许远程连接
    • 修改MongoDB配置文件
    • 配置防火墙
    • 设置用户认证
  10. 远程连接MongoDB

1. 安装curl工具

在Ubuntu系统中新建一个终端,执行如下命令来安装curl

sudo apt install curl

2. 下载并导入MongoDB 6.0 PGP密钥

下载MongoDB 6.0版本的PGP密钥文件并检查公钥是否导入成功:

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo tee /etc/apt/trusted.gpg.d/server-6.0.asc

检查公钥是否导入成功:

apt-key list

3. 向APT导入MongoDB 6.0版软件包的资源链接

添加MongoDB 6.0版软件包的APT源:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

更新APT包列表:

sudo apt update

升级已安装的包(可选):

sudo apt upgrade -y

4. 安装MongoDB依赖libssl1.1

由于某些版本的MongoDB依赖于特定版本的libssl库,在Ubuntu 22.04上需要手动安装libssl1.1。执行以下命令:

echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list
sudo apt-get update
sudo apt-get install libssl1.1

5. 安装MongoDB

开始安装MongoDB:

sudo apt install -y mongodb-org

6. 启动并检查MongoDB服务状态

启动MongoDB服务并检查其状态:

sudo systemctl start mongod
sudo systemctl status mongod

如果一切正常,你会看到类似active (running)的状态信息。

7. 进入MongoDB Shell交互式执行环境

在新的终端窗口中,使用以下命令进入MongoDB Shell:

mongosh

在MongoDB Shell中,可以使用show dbs命令查看所有数据库。默认情况下,MongoDB自带三个数据库localconfigadmin,不建议在这三个数据库中添加自己的数据表,应该创建新的数据库

退出MongoDB Shell:

exit

或者直接按Ctrl+C组合键。

8. 设置MongoDB开机自启

为了确保MongoDB服务在系统启动时自动运行,可以使用以下命令:

sudo systemctl enable mongod

9. 配置MongoDB允许远程连接

9.1 修改MongoDB配置文件

编辑MongoDB的配置文件/etc/mongod.conf

sudo nano /etc/mongod.conf

找到bindIp设置,并将其值更改为服务器的公共IP地址或0.0.0.0以监听所有网络接口:

net:port: 27017bindIp: 0.0.0.0  # 绑定所有IP地址

保存文件并退出编辑器。

重启MongoDB服务使更改生效:

sudo systemctl restart mongod
9.2 配置防火墙

确保服务器的防火墙规则允许外部流量通过MongoDB使用的端口(默认是27017)。如果你使用的是ufw,可以添加如下规则:

sudo ufw allow 27017/tcp
9.3 设置用户认证

为了安全起见,建议启用MongoDB的访问控制并创建管理员用户。以下是简要步骤:

  • 启动无认证模式:先不要启用认证,以便我们可以创建第一个管理员用户。
  • 进入Mongo Shell
    mongosh
    
  • 切换到admin数据库
    use admin
    
  • 创建管理员用户
    db.createUser({user: "yourAdminUsername",pwd: "yourStrongPassword",roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
    })
    
  • 启用访问控制:编辑/etc/mongod.conf文件,在security部分添加或修改authorization参数以启用认证:
    security:authorization: "enabled"
    
  • 再次重启MongoDB服务
    sudo systemctl restart mongod
    

10. 远程连接MongoDB

现在,你可以在远程机器上使用MongoDB客户端(如mongosh)通过提供用户名、密码和服务器地址来连接到MongoDB实例。例如:

mongosh -u "yourAdminUsername" -p "yourStrongPassword" --host your.server.ip.address --authenticationDatabase admin

请确保替换yourAdminUsernameyourStrongPasswordyour.server.ip.address为实际的值。

注意事项
  • 确保你的MongoDB版本与提供的命令兼容。
  • 如果你在云服务提供商处托管服务器,请确保检查云服务提供商的安全组或防火墙设置,以允许入站TCP流量到达MongoDB端口。
  • 在生产环境中,考虑使用SSL/TLS加密连接,以增加安全性。

上述操作来自视频:
链接: bilibili-Ubuntu22.04版本安装MongoDB6.0全过程


http://www.ppmy.cn/devtools/144612.html

相关文章

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验五----土地整治(超超超详细!!!)

土地整治 土地整治是指在一定的区域内,按照土地利用总体规划确定的目标和用途,采取工程和生物措施,以农用地为主要对象,同时视区域内居民点、工矿废弃地和未利用地等适宣性况生费行综合整治,并以增加耕地面积、提高耕地质量、建设高标准基本农田为目的,改善农进生活条件…

数据库管理系统——数据库设计

摘要:本博客讲解了数据库管理系统中的数据库设计相关内容,包括概念结构设计:E-R模型,逻辑结构设计:E-R模型到关系设计等内容。 目录 一、数据库设计和数据模型 1.1.数据库设计概述 1. 2.数据库结构概述 1.3.数据库…

CTF 伪造ip的http请求头(学习记录)

ctf中遇到只允许本地用户访问时,可以使用伪造IP X-Forwarded-For:127.0.0.1 X-Forwarded-For:127.0.0.1 Client-ip:127.0.0.1 X-Client-IP:127.0.0.1 X-Remote-IP:127.0.0.1 X-Rriginating-IP:127.0.0.1 X-Remote-addr:127.0.0.1 HTTP_CLIENT_IP:127.0.0.1 X-Real-…

MFC/C++学习系列之简单记录11——树控件的使用

MFC/C学习系列之简单记录11——树控件的使用 前言CTreectrl使用界面设置代码使用简单设计其他使用注意! 总结 前言 在之前的界面设计中使用得很少,但是可以学习一下,以备不时之需! CTreectrl使用 界面设置 在工具箱中选择Tree C…

flink实现复杂kafka数据读取

接上文:一文说清flink从编码到部署上线 环境说明:MySQL:5.7;flink:1.14.0;hadoop:3.0.0;操作系统:CentOS 7.6;JDK:1.8.0_401。 常见的文章中&…

酷黑金色配色 影片素材不过时 色彩丰富 电影主题html

本套大作业共计8个HTML页面,网页中包含:DIVCSS、下拉菜单栏、banner轮播图、图片放大效果、鼠标滑过效果、视频、小图标及按钮设计、登录注册页等,同时设计了logo;本作品花费大量时间去整理素材,大部分素材均使用Photo…

HTTP协议及安全防范

由于图片解析问题,可以点击查看 👉🏻 博客原文 HTTP(Hypertext Transfer Protocol)超文本传输协议是一个用于 Web 应用程序通信的应用层协议。它是一种客户端-服务器协议,客户端通过发送请求到服务器来获取…

增强LabVIEW与PLC通信稳定性

在工业自动化系统中,上位机与PLC之间的通信稳定性至关重要,尤其是在数据采集和控制任务的实时性要求较高的场景中。LabVIEW作为常用的上位机开发平台,通过合理优化通信协议、硬件接口、数据传输方式以及系统容错机制,可以大大提升…