CentOS 7 安装 MongoDB
在 CentOS 7 上通过 mongodb-linux-x86_64-rhel70-4.4.25.tgz 压缩包来安装 MongoDB,可按照以下步骤进行手动部署。这种方式可以避免使用 yum 包管理器,并允许将 MongoDB 安装在自定义的目录中。
一、准备工作
1. 软件版本
- 操作系统 : CentOS 7.9 (本文基于
CentOS-7-x86_64-Minimal-2009.iso) - MongoDB 版本 : MongoDB 4.4.25 (本文以
mongodb-linux-x86_64-rhel70-4.4.25版本为例进行安装示范)
2. 获取 MongoDB 安装包
首先,需要将指定的 MongoDB 压缩包下载到 CentOS 服务器上。
bash
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.25.tgz
二、安装与配置
假设 MongoDB 安装包已位于服务器的用户主目录中。
1. 解压并移动 MongoDB 目录
下载完成后,将压缩包解压。解压后会得到一个名为 mongodb-linux-x86_64-rhel70-4.4.25 的目录。
bash
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.25.tgz
为了方便管理,建议将解压后的目录重命名并移动到一个统一的位置,例如 /usr/local/mongodb。
bash
mv mongodb-linux-x86_64-rhel70-4.4.25 /usr/local/mongodb
2. 创建 mongod 用户及所需目录
为了以专门的用户运行 MongoDB 服务,首先创建 mongod 用户和组。
bash
sudo groupadd mongod
sudo useradd -r -g mongod -s /bin/false mongod
接着,创建 MongoDB 所需的数据、日志和进程 ID 文件目录。
bash
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
sudo mkdir -p /var/run/mongodb
然后,将这些目录的所有权分配给 mongod 用户。
bash
sudo chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongodb
sudo chown -R mongod:mongod /var/run/mongodb
3. 配置环境变量
为了方便地在任何路径下执行 MongoDB 的命令,需要将其 bin 目录添加到系统的 PATH 环境变量中。
可以选择以下两种方式之一进行配置:
方式一:使用 echo 命令(快捷)
bash
echo "export PATH=/usr/local/mongodb/bin:\$PATH" >> ~/.bash_profile
source ~/.bash_profile
方式二:使用 vi 编辑器
-
打开
.bash_profile文件:bashvi ~/.bash_profile -
在文件末尾添加
export PATH=/usr/local/mongodb/bin:$PATH并保存退出。 -
让配置立即生效:
bashsource ~/.bash_profile
4. 创建 MongoDB 配置文件
创建一个配置文件来指定数据目录、日志路径、端口等信息。
bash
sudo touch /etc/mongod.conf
然后使用 vi 编辑该文件,并添加以下内容:
bash
sudo vi /etc/mongod.conf
yaml
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1 # Listen to local interface only. To allow remote connections, change this to 0.0.0.0
提示 :如果希望允许远程连接,可以将
net.bindIp的值修改为0.0.0.0。
5. 创建 systemd 服务文件
为了能够使用 systemctl 来管理 MongoDB 服务(例如,开机自启、启动、停止),需要创建一个 systemd 服务文件。
bash
sudo vi /etc/systemd/system/mongod.service
将以下内容粘贴到文件中:
ini
[Unit]
Description=MongoDB Database Server
After=network.target
[Service]
User=mongod
Group=mongod
ExecStart=/usr/local/mongodb/bin/mongod --config /etc/mongod.conf
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /etc/mongod.conf
Restart=always
LimitNOFILE=64000
LimitNPROC=64000
Type=forking
PIDFile=/var/run/mongodb/mongod.pid
RuntimeDirectory=mongodb
[Install]
WantedBy=multi-user.target
重要提示:
- 在
[Service]部分添加RuntimeDirectory=mongodb是一个关键步骤。- 作用 :CentOS 7 的
/var/run目录在系统重启后会被清空。这会导致mongod因找不到/var/run/mongodb目录而无法创建.pid文件,从而启动失败。RuntimeDirectory=mongodb指令会告诉systemd,在每次启动服务前,自动在/run(即/var/run) 目录下创建mongodb目录,并设置好正确的用户和组权限。这从根本上解决了因系统重启导致的启动失败问题。
6. 启动并验证 MongoDB 服务
现在可以启动 MongoDB 服务,并设置为开机自启。
-
重新加载 systemd 配置:
bashsudo systemctl daemon-reload -
启动 MongoDB 服务:
bashsudo systemctl start mongod -
验证服务状态:
bashsudo systemctl status mongod如果服务成功启动,应该能看到 "active (running)" 的状态信息。
-
设置开机自启:
bashsudo systemctl enable mongod
7. 连接到 MongoDB
服务启动后,可以通过执行 mongo (或新版本的 mongosh) shell 来连接到数据库并进行验证。
bash
mongo
如果成功,将进入 MongoDB 的交互式 shell。
通过以上步骤,就成功地在 CentOS 7 上手动安装并配置了 MongoDB 4.4.25。