文章目录
阅读本文前可以先阅读以下文章:
- MongoDB快速入门(MongoDB简介、MongoDB的应用场景、MongoDB中的基本概念、MongoDB的数据类型、MongoDB的安装与部署、MongoDB的常用命令)
- MongoDB的常用命令(数据库操作、集合操作、文档操作)
Windows 环境下安装 MongoDB 可以参考我的另一篇博文:Windows环境下安装MongoDB
本次演示的 Linux 发行版为 Ubuntu 22.04 LTS
1. 查看Linux系统的发行版本
输入以下指令查看 Linux 的发行版本
cat /etc/os-release
输入以下指令查看系统的架构
uname -m
2. 下载MongoDB
下载地址:Download MongoDB
选择 Linux 发行版本的信息,选择 tgz 格式,最后点击 Copy link
在 Linux 终端执行下载命令(该命令会将文件下载到当前路径)
curl -o mongodb-linux-x86_64-ubuntu2204-8.0.3.tgz 复制的地址
查看已下载的文件
ls -l
将文件解压到当前目录
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
bindIp: 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 端口
完成以上两个操作后,输入以下指令开放 27017 端口
Ubuntu
sudo ufw allow 27017
sudo ufw reload
CentOS
sudo firewall-cmd --zone=public --add-port=27017 /tcp --permanent
sudo firewall-cmd --reload
7.3 重启MongoDB服务
运行以下指令重启 MongoDB 服务
sudo systemctl restart mongodb