Ubuntu24安装MongoDB(解压版)

发布于:2025-02-19 ⋅ 阅读:(18) ⋅ 点赞:(0)

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 左侧图标(复制下载链接在使用服务器下载)
mongo服务端下载
我这里选择下载本地电脑,后面好通过 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: true

storage:
  # mongod 实例存储其数据的目录,默认值是:"/data/db"。storage.dbPath 仅适用于 mongod
  dbPath: "/app/mongodb-7.0.16/data/db"

# 访问限制管理(开启密码)
#security:
#  authorization: enabled 

net:
  # 服务实例绑定的 IP,默认是 127.0.0.1
  bindIp: 172.30.246.255
  # 绑定的端口,默认是 27017
  port: 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

查看状态结果:
开机自启与mongo服务正常启动状态

关于服务报错的原因?

通常服务启动失败,大概率原因是因为权限不足,检查一下配置文件和日志文件,配置用户是否有权限读取。(我这里的用户 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 安装完成。


网站公告

今日签到

点亮在社区的每一天
去签到