MongoDB 在线安装-一键安装脚本(CentOS 7.9)

1. 脚本概述

本脚本用于在 CentOS 7.9 系统上在线安装 MongoDB,自动处理端口占用和重复安装问题,并创建管理员用户 test8,密码 test123。

2. 功能

  1. 停止并关闭防火墙

  2. 检查 27017 端口占用并结束进程

  3. 如果已安装 MongoDB,卸载重装

  4. 配置 MongoDB 官方 yum 源并安装 MongoDB

  5. 创建数据目录和日志目录

  6. 启动 MongoDB 并设置开机自启

  7. 创建 test8 用户并授予 root 权限

  8. 验证用户登录

    bash 复制代码
    #!/bin/bash
    set -e
    
    # 关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    
    # 检查并结束27017端口占用
    PORT=27017
    PID=$(lsof -t -i:$PORT || true)
    if [ -n "$PID" ]; then
        echo "端口 $PORT 被进程 $PID 占用,正在结束进程..."
        kill -9 $PID
    fi
    
    # 如果已安装MongoDB,卸载
    if rpm -qa | grep -q mongodb-org; then
        echo "检测到已安装MongoDB,正在卸载..."
        yum remove -y mongodb-org*
        rm -rf /var/lib/mongo /var/log/mongodb /etc/mongod.conf
    fi
    
    # 安装依赖
    yum install -y epel-release libcurl openssl
    
    # 配置MongoDB官方yum源
    cat >/etc/yum.repos.d/mongodb-org-4.4.repo <<EOF
    [mongodb-org-4.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
    EOF
    
    # 安装MongoDB
    yum install -y mongodb-org
    
    # 创建数据目录和日志目录
    mkdir -p /var/lib/mongo /var/log/mongodb
    chown -R mongod:mongod /var/lib/mongo /var/log/mongodb
    
    # 启动MongoDB并开启开机自启
    systemctl enable mongod
    systemctl start mongod
    
    # 等待MongoDB启动
    sleep 5
    
    # 创建test8用户并授予root权限
    mongo --quiet <<EOF
    use admin
    if (!db.getUser('test8')) {
      db.createUser({ user: 'test8', pwd: 'test123', roles: [ { role: 'root', db: 'admin' } ] })
    } else {
      db.grantRolesToUser('test8', [{ role: 'root', db: 'admin' }])
    }
    EOF
    
    # 验证用户登录
    mongo -u test8 -p test123 --authenticationDatabase admin --quiet <<EOF
    use admin
    db.runCommand({ connectionStatus: 1 })
    EOF
    
    echo "MongoDB 在线安装与用户 test8 配置完成"
相关推荐
jiayou646 小时前
KingbaseES 表级与列级加密完全指南
数据库·后端
葫芦和十三20 小时前
图解 MongoDB 19|Oplog:复制的真正载体,不是文档是操作
后端·mongodb·agent
葫芦和十三20 小时前
图解 MongoDB 20|复制延迟与 catch up:Secondary 为什么跟不上
后端·mongodb·agent
GBASE1 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
xiezhr1 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
吃糖的小孩2 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
葫芦和十三2 天前
图解 MongoDB 17|大集合与工作集:数据超过内存怎么办
后端·mongodb·面试
葫芦和十三3 天前
图解 MongoDB 18|复制集拓扑:Primary、Secondary 和 Arbiter 的分工
后端·mongodb·面试
葫芦和十三3 天前
图解 MongoDB 15|journal 与持久化:写入怎么不丢,崩溃怎么恢复
后端·mongodb·面试
葫芦和十三3 天前
图解 MongoDB 16|压缩:snappy、zstd 和 zlib 的取舍
后端·mongodb·面试