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

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

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

1. 安装curl工具

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

bash 复制代码
sudo apt install curl

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

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

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

检查公钥是否导入成功:

bash 复制代码
apt-key list

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

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

bash 复制代码
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包列表:

bash 复制代码
sudo apt update

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

bash 复制代码
sudo apt upgrade -y

4. 安装MongoDB依赖libssl1.1

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

bash 复制代码
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:

bash 复制代码
sudo apt install -y mongodb-org

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

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

bash 复制代码
sudo systemctl start mongod
sudo systemctl status mongod

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

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

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

bash 复制代码
mongosh

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

退出MongoDB Shell:

bash 复制代码
exit

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

8. 设置MongoDB开机自启

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

bash 复制代码
sudo systemctl enable mongod

9. 配置MongoDB允许远程连接

9.1 修改MongoDB配置文件

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

bash 复制代码
sudo nano /etc/mongod.conf

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

yaml 复制代码
net:
  port: 27017
  bindIp: 0.0.0.0  # 绑定所有IP地址

保存文件并退出编辑器。

重启MongoDB服务使更改生效:

bash 复制代码
sudo systemctl restart mongod
9.2 配置防火墙

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

bash 复制代码
sudo ufw allow 27017/tcp
9.3 设置用户认证

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

  • 启动无认证模式:先不要启用认证,以便我们可以创建第一个管理员用户。

  • 进入Mongo Shell

    bash 复制代码
    mongosh
  • 切换到admin数据库

    javascript 复制代码
    use admin
  • 创建管理员用户

    javascript 复制代码
    db.createUser({
      user: "yourAdminUsername",
      pwd: "yourStrongPassword",
      roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
    })
  • 启用访问控制 :编辑/etc/mongod.conf文件,在security部分添加或修改authorization参数以启用认证:

    yaml 复制代码
    security:
      authorization: "enabled"
  • 再次重启MongoDB服务

    bash 复制代码
    sudo systemctl restart mongod

10. 远程连接MongoDB

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

bash 复制代码
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全过程

相关推荐
数智化管理手记3 分钟前
异常反复出现?精益生产生产异常闭环的三大常见问题场景
大数据·数据库·低代码·制造·精益工程
2301_816660219 分钟前
golang如何实现SSRF防护策略_golang SSRF防护策略实现方案
jvm·数据库·python
流年如夢12 分钟前
自定义类型进阶:联合与枚举
java·c语言·开发语言·数据结构·数据库·c++·算法
解救女汉子13 分钟前
CSS3 按钮悬停时显示手型光标(cursor- pointer)的正确写法
jvm·数据库·python
csdn2015_19 分钟前
spring boot 启动的时候将数据库里的分类信息写入redis
数据库·spring boot·redis
四维迁跃26 分钟前
c++怎么在写入文件流时通过peek预读功能实现复杂的逻辑判断【实战】
jvm·数据库·python
小超同学你好32 分钟前
OpenClaw 深度解析与源代码导读 · 第7篇:Memory 子系统——持久化、内置记忆与「人格文件」分界
数据库
2301_7751481532 分钟前
如何管理RAC归档日志_共享存储中的FRA配置与双节点访问
jvm·数据库·python
RoboWizard35 分钟前
移动固态硬盘的耐用性如何,怎么判断使用寿命?
服务器·数据库·负载均衡
qq_3300379940 分钟前
php怎么实现接口请求日志记录_php如何自动记录入参出参与耗时
jvm·数据库·python