阅读本文前可以先阅读以下文章:
- MongoDB快速入门(MongoDB简介、MongoDB的应用场景、MongoDB中的基本概念、MongoDB的数据类型、MongoDB的安装与部署、MongoDB的常用命令)
- MongoDB的常用命令(数据库操作、集合操作、文档操作)
Windows 环境下安装 MongoDB 可以参考我的另一篇博文:Windows环境下安装MongoDB
本次演示的 Linux 发行版为 Ubuntu 22.04 LTS
1. 查看Linux系统的发行版本
输入以下指令查看 Linux 的发行版本
输入以下指令查看系统的架构
2. 下载MongoDB
下载地址:Download MongoDB
选择 Linux 发行版本的信息,选择 tgz 格式,最后点击 Copy link
在 Linux 终端执行下载命令(该命令会将文件下载到当前路径) - curl -o mongodb-linux-x86_64-ubuntu2204-8.0.3.tgz 复制的地址
复制代码
查看已下载的文件
将文件解压到当前目录 - tar -xvf mongodb-linux-x86_64-ubuntu2204-8.0.3.tgz
复制代码
移动解压后的文件夹到 /usr/local/mongodb 目录 - sudo mv mongodb-linux-x86_64-ubuntu2204-8.0.3 /usr/local/mongodb
复制代码
3. 安装MongoDB
3.1 新建几个目录,分别用来存储 MongoDB 的数据和日志
将 ubuntu 换成你的用户名 - # 数据存储目录
- mkdir -p /home/ubuntu/mongodb/single/data/db
复制代码- # 日志存储目录
- mkdir -p /home/ubuntu/mongodb/single/log
复制代码
3.2 新建日志文件
将 ubuntu 换成你的用户名 - touch /home/ubuntu/mongodb/single/log/mongod.log
复制代码
3.3 新建配置文件
将 ubuntu 换成你的用户名 - vim /home/ubuntu/mongodb/single/mongod.conf
复制代码
将以下内容粘贴到文件中后保存(将文件中的 ubuntu 换成你的用户名) - systemLog:
- # MongoDB 发送所有日志输出的目标指定为文件
- # The path of the log file to which mongod or mongos should send all diagnostic logging information
- destination: file
- # mongod 或 mongos 应向其发送所有诊断日志记录信息的日志文件的路径
- path: "/home/ubuntu/mongodb/single/log/mongod.log"
- # 当 mongos 或 mongod 实例重新启动时,mongos 或 mongod 会将新条目附加到现有日志文件的末尾
- logAppend: true
- storage:
- # mongod 实例存储其数据的目录。storage.dbPath 设置仅适用于 mongod
- # The directory where the mongod instance stores its data. Default Value is "/data/db"
- dbPath: "/home/ubuntu/mongodb/single/data/db"
- # processManagement:
- net:
- # 服务实例绑定的 IP,默认是 127.0.0.1
- bindIp: 127.0.0.1
- # 绑定的端口,默认是 27017
- port: 27017
复制代码
4. 将MongoDB注册为服务
4.1 新建服务文件 - sudo vim /etc/systemd/system/mongodb.service
复制代码
4.2 编写服务文件
将以下内容拷贝到文件中(将文件中的 ubuntu 换成你的用户名) - # MongoDB数据库服务器的systemd服务文件
- [Unit]
- # 描述:服务的简短描述
- Description=MongoDB Server
- # 在...之后:指定在哪个目标启动之后,此服务才会启动
- After=network.target
- [Service]
- # 用户:运行此服务的用户
- User=ubuntu
- # 启动命令:启动服务的命令
- ExecStart=/usr/local/mongodb/bin/mongod -f /home/ubuntu/mongodb/single/mongod.conf
- [Install]
- # 想要由...启动:指定当哪个目标启动时,此服务也应该自动启动
- WantedBy=multi-user.target
复制代码
5. MongoDB服务相关操作
5.1 启动MongoDB服务
输入以下指令启动 MongoDB 服务 - sudo systemctl start mongodb.service
复制代码
5.2 查看MongoDB的服务状态
输入以下指令查看 MongoDB 的服务状态 - sudo systemctl status mongodb.service
复制代码
如果服务启动失败,大概率是因为权限不足,可以检查一下配置文件和日志文件是否有权限读取
5.3 停止 MongoDB 服务 - sudo systemctl stop mongodb.service
复制代码
5.4 设置 MongoDB 服务开机自启(可选) - sudo systemctl enable mongodb.service
复制代码
6. 开启MongoDB的安全认证(云服务器一定要开启)
如果你是使用云服务器来部署 MongoDB,一定要开启 MongoDB 的安全认证,否则 MongoDB 大概率会被黑掉
Linux 环境开启MongoDB的安全认证可以参考我的另一篇博文:Linux环境开启MongoDB的安全认证
7. 远程访问MongoDB
7.1 开启远程访问
默认情况下,只能在本机访问 MongoDB,要想远程访问 MongoDB,需要修改配置文件(将 ubuntu 换成你的用户名) - vim /home/ubuntu/mongodb/single/mongod.conf
复制代码
将 127.0.0.1 改成 0.0.0.0
完整的配置文件(已开启安全认证) - systemLog:
- # MongoDB 发送所有日志输出的目标指定为文件
- # The path of the log file to which mongod or mongos should send all diagnostic logging information
- destination: file
- # mongod 或 mongos 应向其发送所有诊断日志记录信息的日志文件的路径
- path: "/home/ubuntu/mongodb/single/log/mongod.log"
- # 当 mongos 或 mongod 实例重新启动时,mongos 或 mongod 会将新条目附加到现有日志文件的末尾
- logAppend: true
- storage:
- # mongod 实例存储其数据的目录。storage.dbPath 设置仅适用于 mongod
- # The directory where the mongod instance stores its data. Default Value is "/data/db"
- dbPath: "/home/ubuntu/mongodb/single/data/db"
- # processManagement:
- security:
- authorization: enabled
- net:
- # 服务实例绑定的 IP,默认是 127.0.0.1
- # bindIp: 127.0.0.1
- bindIp: 0.0.0.0
- # 绑定的端口,默认是 27017
- port: 27017
复制代码
7.2 开放防火墙的 27017 端口
注意:如果使用的是云服务器,请确保开放防火墙的 27017 端口之前,MongoDB 已经开启了安全认证
- 如果你使用的是云服务器,在安全组中放行 27017 端口
- 如果你安装了宝塔,除了在安全组中放行 27017 端口,可能还要在宝塔中放行 27017 端口
7.3 重启MongoDB服务
运行以下指令重启 MongoDB 服务 - sudo systemctl restart mongodb
复制代码 |