跳到主要内容

安装MongoDB

本文档介绍如何在Ubuntu 24.04 (Noble Numbat) 上安装MongoDB 8.0 Community Edition。

系统要求

  • Ubuntu 24.04 LTS (Noble Numbat)
  • 至少2GB RAM
  • 具有sudo权限的用户账户

1、准备工作【执行节点:Ubuntu服务器】

确保系统已经更新到最新状态:

sudo apt update
sudo apt upgrade -y

安装必要的工具:

sudo apt install gnupg curl -y

2、导入MongoDB公钥【执行节点:Ubuntu服务器】

导入MongoDB的公共GPG密钥用于验证软件包:

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor

3、添加MongoDB仓库【执行节点:Ubuntu服务器】

创建MongoDB的APT仓库列表文件:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

4、更新包数据库【执行节点:Ubuntu服务器】

重新加载本地包数据库:

sudo apt update

5、安装MongoDB【执行节点:Ubuntu服务器】

安装最新的稳定版MongoDB:

sudo apt install -y mongodb-org

如果要安装特定版本,可以指定版本号:

sudo apt install -y \
mongodb-org=8.0.12 \
mongodb-org-database=8.0.12 \
mongodb-org-server=8.0.12 \
mongodb-mongosh \
mongodb-org-mongos=8.0.12 \
mongodb-org-tools=8.0.12

6、启动MongoDB服务【执行节点:Ubuntu服务器】

启动MongoDB服务:

sudo systemctl start mongod

如果出现"Unit mongod.service not found"错误,请先运行:

sudo systemctl daemon-reload

然后再次尝试启动服务。

7、验证MongoDB服务状态【执行节点:Ubuntu服务器】

检查MongoDB服务是否正常运行:

sudo systemctl status mongod

设置MongoDB开机自启:

sudo systemctl enable mongod

8、使用MongoDB【执行节点:Ubuntu服务器】

启动MongoDB Shell连接到数据库:

mongosh

9、配置防火墙(可选)【执行节点:Ubuntu服务器】

如果您需要从外部访问MongoDB数据库,或者在生产环境中使用MongoDB,建议配置防火墙以增强安全性。

Ubuntu默认使用UFW(Uncomplicated Firewall)作为防火墙管理工具。要允许外部访问MongoDB,默认端口是27017:

# 启用UFW防火墙
sudo ufw enable

# 允许MongoDB端口
sudo ufw allow 27017

# 或者只允许特定IP访问MongoDB(更安全)
# sudo ufw allow from <客户端IP> to any port 27017

# 查看防火墙状态
sudo ufw status

安全提示

  • 生产环境中不应将MongoDB暴露给所有IP地址
  • 应该限制只有可信的客户端IP能够访问MongoDB端口
  • 考虑使用VPN或SSH隧道来安全地访问远程MongoDB实例

10、MongoDB基本目录

  • 数据目录:/var/lib/mongodb
  • 日志目录:/var/log/mongodb
  • 配置文件:/etc/mongod.conf

注意事项

  1. Ubuntu官方提供的mongodb包不是由MongoDB Inc.维护的,与官方mongodb-org包冲突。如果已安装Ubuntu提供的mongodb包,请先卸载后再按照本教程安装。

  2. 如果要防止意外升级,可以锁定当前版本:

    echo "mongodb-org hold" | sudo dpkg --set-selections
    echo "mongodb-org-database hold" | sudo dpkg --set-selections
    echo "mongodb-org-server hold" | sudo dpkg --set-selections
  3. MongoDB安全配置: 默认情况下,MongoDB绑定到localhost(127.0.0.1),这意味着只能从本地访问数据库。如果需要从远程访问,需要修改配置文件/etc/mongod.conf中的bindIp设置:

    # network interfaces
    net:
    port: 27017
    bindIp: 127.0.0.1,服务器IP地址 # 或者设置为 0.0.0.0 允许所有IP访问(不推荐)

    修改配置后需要重启MongoDB服务:

    sudo systemctl restart mongod
  4. 启用身份验证: 在生产环境中强烈建议启用身份验证。首先连接到MongoDB:

    mongosh

    创建管理员用户:

    use admin
    db.createUser(
    {
    user: "admin",
    pwd: "yourStrongPassword",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
    }
    )

    然后编辑/etc/mongod.conf文件,启用身份验证:

    security:
    authorization: enabled

    重启MongoDB服务使更改生效:

    sudo systemctl restart mongod

参考官方安装说明文档: https://www.mongodb.com/docs/v8.0/tutorial/install-mongodb-on-ubuntu/