目录
- 0.需求说明
- 1.环境检查
- 2.下载软件
- 2.1.下载MongoDB服务端
- 2.2.下载MongoDB连接工具(可略过)
- 2.3.检查上传或下载的安装包
- 3.安装MongoDB
- 3.1.编辑系统服务
- 3.2.启动服务
- 3.3.客户端连接验证
- 3.3.1.创建管理员用户
- 4.远程访问
- 4.1.开启远程访问
- 4.2.开放防火墙
0.需求说明
问:mongodb 为什么需要进行解压安装?
答:日常运维过程中会要求对 软件版本 进行管理,以及针对不同Linux发行版的安装 步骤通用。
1.环境检查
mongo的解压安装需下载对应系统的安装包,因此需先进行Linux发行版环境的检查。
检查命令:
# 查看Linux发行版本
cat /etc/os-release
# 查看系统架构
uname -m
输出结果1:
PRETTY_NAME="Ubuntu 24.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
输出结果2:
x86_64
2.下载软件
2.1.下载MongoDB服务端
下载地址:Download
依据前面 Linux 发行版本的信息,选择你需要的版本,文件格式选择 tgz 格式,最后点击 Download(下载到你的电脑)或 点击 Copy link 左侧图标(复制下载链接在使用服务器下载)
我这里选择下载本地电脑,后面好通过 xshell 等工具上传至服务器(由堡垒机上传至内网服务器)
在 Linux 终端执行下载命令(该命令会将文件下载到当前路径)
# 在软件包管理目录
cd /app/apps
# 使用wget命令下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-7.0.16.tgz
2.2.下载MongoDB连接工具(可略过)
MongoDB 6.x 版本之后移除了 mongo 连接工具,需要自行下载 MongoDB Shell。
如果你需要版本低于 MongoDB 6,或者无需在服务器环境下进行验证,可以选择忽略此步骤。
下载地址:Download
依据前面 Linux 发行版本的信息,选择你需要的版本,文件格式选择 tgz 格式,最后点击 Download(下载到你的电脑)或 点击 Copy link 左侧图标(复制下载链接在使用服务器下载)
# 在软件包管理目录
cd /app/apps
# 使用wget命令下载
wget https://downloads.mongodb.com/compass/mongosh-2.3.9-linux-x64.tgz
2.3.检查上传或下载的安装包
连接到服务器,执行命令,切换至安装包管理目录进行查看:
# 切换至安装包路径
cd /app/apps
# 查看安装包
ll -h
检查结果为:
3.安装MongoDB
进入软件包管理目录进行解压安装:
# 切换至安装包路径
cd /app/apps
# 解压
tar -xvf mongodb-linux-x86_64-ubuntu2204-7.0.16.tgz
# 重命名
mv mongodb-linux-x86_64-ubuntu2204-7.0.16 mongodb-7.0.16
# 移动到安装位置
mv mongodb-7.0.16 /app/
新建数据目录和日志目录
# 数据存储目录
mkdir -p /app/mongodb-7.0.16/data/db
# 日志目录
mkdir -p /app/mongodb-7.0.16/log
创建日志文件和配置文件
# 日志文件
touch /app/mongodb-7.0.16/log/mongod.log
# 配置文件(后续mongo服务启动需要)
touch /app/mongodb-7.0.16/data/mongod.conf
编辑配置文件:
vim /app/mongodb-7.0.16/data/mongod.conf
内容如下:
systemLog:# MongoDB 发送所有日志输出的目标指定为文件destination: file# mongod 或 mongos 应向其发送所有诊断日志记录信息的日志文件的路径path: "/app/mongodb-7.0.16/log/mongod.log"# 当 mongos 或 mongod 实例重新启动时,mongos 或 mongod 会将新条目附加到现有日志文件的末尾logAppend: truestorage:# mongod 实例存储其数据的目录,默认值是:"/data/db"。storage.dbPath 仅适用于 mongoddbPath: "/app/mongodb-7.0.16/data/db"# 访问限制管理(开启密码)
#security:
# authorization: enabled net:# 服务实例绑定的 IP,默认是 127.0.0.1bindIp: 172.30.246.255# 绑定的端口,默认是 27017port: 7001
3.1.编辑系统服务
创建系统服务管理文件:
sudo vim /etc/systemd/system/mongodb.service
内容如示:
[Unit]
# 服务描述
Description=MongoDB Server
# 在网卡启动后,此服务才会启动
After=network.target[Service]
# 用户:运行此服务的用户
User=root
# 启动命令:启动服务的命令
ExecStart=/app/mongodb-7.0.16/bin/mongod -f /app/mongodb-7.0.16/data/mongod.conf[Install]
WantedBy=multi-user.target
保存后对文件进行赋权
# 重载系统服务
systemctl daemon-reload
# 设置开机自启(重启服务器生效)
systemctl enable mongodb
# 关闭开机自启(可能会用)
# systemctl disable mongodb
# 重启服务器命令 reboot 或 init 6
3.2.启动服务
# 启动
systemctl start mongodb
# 查看mongodb服务状态
systemctl status mongodb
# 重新启动
systemctl restart mongodb
# 关闭
systemctl stop mongodb
查看状态结果:
关于服务报错的原因?
通常服务启动失败,大概率原因是因为权限不足,检查一下配置文件和日志文件,配置用户是否有权限读取。(我这里的用户 root ,所有没有问题)
赋权命令参考:
# 例如:专门创建一个mongodb用户用于管理的情形
sudo chown -R mongodb:mongodb /app/mongodb-7.0.16# 用户创建命令
sudo useradd mongodb
3.3.客户端连接验证
解压客户端连接工具
# 切换至安装包路径
cd /app/apps
# 解压
tar -xvf mongosh-2.3.9-linux-x64.tgz
# 重命名
mv mongosh-2.3.9-linux-x64 mongosh-2.3.9
# 移动到安装位置
mv mongosh-2.3.9 /app/
配置环境变量
# 编辑环境变量
vim /etc/profile
# 添加mongodb的环境变量
添加内容如示(位置:文件内容末尾):
#mongodb路径
export PATH=/app/mongodb-7.0.16/bin:$PATH
export PATH=/app/mongosh-2.3.9/bin:$PATH
# 重载环境变量
source /etc/profile
# 查看环境变量
echo $PATH
显示内容如示:
/app/mongosh-2.3.9/bin:/app/mongodb-7.0.16/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
执行命令连接访问:
mongosh --host 172.30.246.255 --port 7001
附带用户名密码访问:
mongosh --host 172.30.246.255 --port 7001 --username mongoadmin --password
# 紧接着输入密码即可。
3.3.1.创建管理员用户
先切换到 admin 数据库
use admin;
接着创建一个管理员用户(密码中不要出现 #、$、!、@ 等特殊符号,原因是mongo连接时使用的url中 特殊字符有其他作用)
db.createUser({user: "mongoadmin",pwd: "你的密码",roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
});
开启权限认证
修改 MongoDB 的配置文件,开启权限认证,主要是将前面访问限制注释内容放开。
vim /app/mongodb-7.0.16/data/mongod.conf
# 访问限制管理(开启密码)
security:authorization: enabled
重启MongoDB服务
systemctl restart mongodb
4.远程访问
4.1.开启远程访问
默认情况下,只能在本机访问 MongoDB,要想远程访问 MongoDB,需要修改配置文件。(如果你的机器在内网上,此处就需要在 能访问 公网的那个机器上配置 端口流量转发)
# 编辑配置文件
vim /app/mongodb-7.0.16/data/mongod.conf# ip绑定调整如下:(将 127.0.0.1(或你写的ip)改成 0.0.0.0 )
bindIp: 0.0.0.0
4.2.开放防火墙
注意:如果是云服务器,请确保开放防火墙的端口 7001(默认是27017)之前,MongoDB 已经开启了安全认证
云服务器环境,需在安全组中放行 7001(默认是27017) 端口。
Ubuntu 防火墙端口放行:
# 开放端口
sudo ufw allow 7001
# 重启防火墙
sudo ufw reload
以上 mongodb 安装完成。