1. 首页 > 软件安装教程 > 正文

MongoDB安装-MongoDB 5.0安装配置 FOR 国产麒麟Kylin v10详细过程

1. 硬件环境要求

MongoDB是文档型数据库,对硬件环境有一定要求,特别是内存和磁盘。更多学习教程www.fgedu.net.cn

生产环境建议:
– 最小内存:16GB(测试环境),生产环境建议32GB以上
– CPU:至少8核心,生产环境建议16核心以上
– 磁盘:SSD存储,数据盘至少500GB(TB级数据量需要更大)
– 网络:千兆网卡,生产环境建议万兆网卡

# 检查硬件环境
# 检查内存大小
# free -h
total used free shared buff/cache available
Mem: 64G 2.1G 60G 8.5M 1.8G 61G
Swap: 32G 0B 32G

# 检查CPU核心数
# nproc
16

# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 8.5M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 50G 15G 36G 30% /
/dev/sdb1 2.0T 20G 1.9T 1% /mongodb

# 检查网络状态
# ethtool eth0 | grep -i speed
Speed: 1000Mb/s

2. 操作系统准备

在安装MongoDB之前,需要对操作系统进行准备,包括关闭SELinux、防火墙配置、安装依赖包等。学习交流加群风哥微信: itpux-com

# 检查操作系统版本
# cat /etc/kylin-release
Kylin Linux Advanced Server release V10 (Tercel)

# 检查内核版本
# uname -r
4.19.90-24.4.v2101.ky10.x86_64

# 关闭SELinux
# vi /etc/selinux/config
SELINUX=disabled

# 使SELinux配置生效
# setenforce 0

# 检查SELinux状态
# getenforce
Disabled

# 关闭防火墙(生产环境建议开放特定端口)
# systemctl stop firewalld
# systemctl disable firewalld

# 安装依赖包
# yum install -y libcurl openssl xz-libs

3. MongoDB安装步骤

本文以MongoDB 5.0.8为例,从官方网站下载安装包进行安装。

# 创建MongoDB用户和组
# groupadd -g 27017 mongodb
# useradd -u 27017 -g mongodb -m -d /mongodb mongodb

# 下载MongoDB安装包
# cd /tmp
# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.8.tgz

# 解压安装包
# tar -zxvf mongodb-linux-x86_64-rhel70-5.0.8.tgz

# 移动到安装目录
# mv mongodb-linux-x86_64-rhel70-5.0.8 /mongodb

# 创建符号链接
# ln -s /mongodb/mongodb-linux-x86_64-rhel70-5.0.8 /mongodb/current

# 添加环境变量
# vi /etc/profile
export PATH=/mongodb/current/bin:$PATH

# 使环境变量生效
# source /etc/profile

# 验证MongoDB版本
# mongod –version
MongoDB server version: 5.0.8

风哥提示:MongoDB 5.0需要使用较新的glibc版本,确保操作系统满足要求。

4. 配置文件优化

MongoDB的配置文件对性能和稳定性有重要影响,需要根据硬件环境进行优化。学习交流加群风哥QQ113257174

# 创建配置文件目录
# mkdir -p /mongodb/conf

# 创建数据目录
# mkdir -p /mongodb/data

# 创建日志目录
# mkdir -p /mongodb/log

# 创建配置文件
# vi /mongodb/conf/mongod.conf

# 配置文件内容
storage:
dbPath: /mongodb/data
journal:
enabled: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 48
directoryForIndexes: true

net:
port: 27017
bindIp: 192.168.1.51

processManagement:
fork: true
pidFilePath: /mongodb/run/mongod.pid

systemLog:
destination: file
logAppend: true
path: /mongodb/log/mongod.log

security:
authorization: enabled

operationProfiling:
mode: slowOp
slowOpThresholdMs: 100

replication:
replSetName: fgedudb

# 创建必要的目录
# mkdir -p /mongodb/run

# 设置目录权限
# chown -R mongodb:mongodb /mongodb
# chmod 755 /mongodb/run
# chmod 755 /mongodb/log
# chmod 755 /mongodb/data

5. 服务管理

为了方便管理MongoDB服务,我们需要创建系统服务文件。更多学习教程公众号风哥教程itpux_com

# 创建MongoDB服务文件
# vi /etc/systemd/system/mongodb.service

[Unit]
Description=MongoDB Server
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
PIDFile=/mongodb/run/mongod.pid
ExecStart=/mongodb/current/bin/mongod –config /mongodb/conf/mongod.conf
ExecStop=/mongodb/current/bin/mongod –config /mongodb/conf/mongod.conf –shutdown
Restart=on-failure

[Install]
WantedBy=multi-user.target

# 重新加载系统服务
# systemctl daemon-reload

# 启动MongoDB服务
# systemctl start mongodb

# 查看服务状态
# systemctl status mongodb
● mongodb.service – MongoDB Server
Loaded: loaded (/etc/systemd/system/mongodb.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2026-03-31 11:00:00 CST; 1min ago
Main PID: 12345 (mongod)
Tasks: 24
Memory: 1.0G
CGroup: /system.slice/mongodb.service
└─12345 /mongodb/current/bin/mongod –config /mongodb/conf/mongod.conf

# 设置开机自启
# systemctl enable mongodb
Created symlink /etc/systemd/system/multi-user.target.wants/mongodb.service → /etc/systemd/system/mongodb.service.

6. 性能调优

MongoDB的性能调优包括操作系统参数调优和MongoDB配置调优两个方面。

# 操作系统参数调优
# 编辑sysctl.conf文件
# vi /etc/sysctl.conf

# 添加以下参数
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
vm.overcommit_memory = 1
vm.swappiness = 0
fs.file-max = 6815744

# 使参数生效
# sysctl -p

# 调整文件描述符限制
# vi /etc/security/limits.conf

# 添加以下内容
* soft nofile 65535
* hard nofile 65535
mongodb soft nofile 65535
mongodb hard nofile 65535

生产环境建议:
– net.core.somaxconn设置为65535,提高TCP连接队列长度
– vm.overcommit_memory设置为1,允许MongoDB使用更多内存
– vm.swappiness设置为0,减少使用swap
– 文件描述符限制设置为65535,支持更多连接
– wiredTiger.cacheSizeGB设置为物理内存的70%-80%

7. 备份策略

MongoDB的备份策略包括mongodump命令和复制集备份,需要定期进行备份。from:www.itpux.com

# 创建备份目录
# mkdir -p /backup/mongodb

# 编写备份脚本
# vi /backup/mongodb/backup.sh

#!/bin/bash

# 备份时间
BACKUP_TIME=$(date +”%Y-%m-%d-%H-%M-%S”)

# 备份目录
BACKUP_DIR=”/backup/mongodb/${BACKUP_TIME}”

# 创建备份目录
mkdir -p ${BACKUP_DIR}

# 执行备份
/mongodb/current/bin/mongodump –host 192.168.1.51 –port 27017 –username admin –password fgedudb123 –authenticationDatabase admin –out ${BACKUP_DIR}

# 保留最近7天的备份
find /backup/mongodb -type d -mtime +7 -exec rm -rf {} \;

# 输出备份信息
echo “MongoDB backup completed: ${BACKUP_DIR}”

# 设置脚本执行权限
# chmod +x /backup/mongodb/backup.sh

# 添加到定时任务
# crontab -e

# 每天凌晨2点执行备份
0 2 * * * /backup/mongodb/backup.sh >> /backup/mongodb/backup.log 2>&1

8. 安全设置

MongoDB的安全设置包括用户认证、IP绑定、防火墙设置等。

# 连接MongoDB
# /mongodb/current/bin/mongo –host 192.168.1.51 –port 27017

# 创建管理员用户
> use admin
switched to db admin
> db.createUser({
… user: “admin”,
… pwd: “fgedudb123”,
… roles: [ { role: “root”, db: “admin” } ]
… })
Successfully added user: { “user” : “admin”, “roles” : [ { “role” : “root”, “db” : “admin” } ] }

# 创建应用用户
> use fgedudb
switched to db fgedudb
> db.createUser({
… user: “fgedu”,
… pwd: “fgedudb123”,
… roles: [ { role: “readWrite”, db: “fgedudb” } ]
… })
Successfully added user: { “user” : “fgedu”, “roles” : [ { “role” : “readWrite”, “db” : “fgedudb” } ] }

# 退出MongoDB
> exit

生产环境建议:
– 启用认证机制,设置强密码
– 绑定特定IP,避免监听所有接口
– 限制MongoDB端口的访问权限
– 定期更新MongoDB版本,修复安全漏洞
– 使用TLS/SSL加密传输

9. 安装验证

安装完成后,需要验证MongoDB服务是否正常运行。

# 连接MongoDB
# /mongodb/current/bin/mongo –host 192.168.1.51 –port 27017 -u admin -p fgedudb123 –authenticationDatabase admin

# 测试命令
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB

> use fgedudb
switched to db fgedudb

> db.fgedu_users.insert({name: “测试用户”, age: 25, email: “test@fgedu.net.cn”})
WriteResult({ “nInserted” : 1 })

> db.fgedu_users.find()
{ “_id” : ObjectId(“60a7b3c4d5e6f7g8h9i0j1k2”), “name” : “测试用户”, “age” : 25, “email” : “test@fgedu.net.cn” }

> db.serverStatus()
{
“host” : “fgedudb01”,
“version” : “5.0.8”,
“process” : “mongod”,
“pid” : NumberLong(12345),
“uptime” : 3600,
“uptimeMillis” : NumberLong(3600000),
“uptimeEstimate” : NumberLong(3600),
“localTime” : ISODate(“2026-03-31T11:30:00Z”),
“asserts” : {
“regular” : 0,
“warning” : 0,
“msg” : 0,
“user” : 0,
“rollovers” : 0
},
“connections” : {
“current” : 1,
“available” : 65534,
“totalCreated” : 1
}
}

> exit

风哥提示:验证MongoDB安装是否成功,需要测试基本命令、数据插入、查询和服务状态等方面。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息