安装与配置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全过程

相关推荐
bkspiderx6 分钟前
libmysqlclient:MySQL 底层客户端库的全面指南
数据库·mysql·mysqlclient·libmysqlclient·mysql 底层客户端库
Arva .6 分钟前
详细描述一条 SQL 在 MySQL 中的执行过程
数据库·sql·mysql
数据库学啊9 分钟前
好用的车联网时序数据库机构有哪些
大数据·数据库·时序数据库
Elastic 中国社区官方博客25 分钟前
如何通过个性化、分群感知排序来提升电商搜索相关性
大数据·数据库·elasticsearch·搜索引擎·全文检索
urkay-31 分钟前
Android 数据库操作线程安全吗
android·数据库·安全
ZeroNews内网穿透33 分钟前
RStudio Server 结合 ZeroNews,实现远程访问管理
运维·服务器·网络·数据库·网络协议·安全·web安全
李白你好37 分钟前
Redis 漏洞图形化利用工具
数据库·redis·缓存
JosieBook44 分钟前
【数据库】IoTDB数据库与时序大模型深度融合,开启数据智能分析新范式
数据库·iotdb
Logic1011 小时前
《Mysql数据库应用》 第2版 郭文明 实验4 视图和索引的构建与使用核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
码农12138号1 小时前
网络安全-SQL注入
数据库·web安全·sql注入