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 配置完成"
相关推荐
计算机毕设VX:Fegn08958 小时前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Mr__Miss8 小时前
保持redis和数据库一致性(双写一致性)
数据库·redis·spring
Knight_AL9 小时前
Spring 事务传播行为 + 事务失效原因 + 传播行为为什么不用其他模式
数据库·sql·spring
倔强的石头_9 小时前
时序数据时代的“存储与分析困局”解析及金仓解决方案
数据库
计算机毕设VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
倔强的石头_10 小时前
场景化落地指南——金仓时序数据库在关键行业的应用实践
数据库
SelectDB10 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache
zbguolei10 小时前
MySQL根据身份证号码计算出生日期和年龄
数据库·mysql
马克学长11 小时前
SSM校园图书借阅服务系统jd2z8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·图书管理系统·ssm 框架·ssm 校园图书借阅系统
软件派11 小时前
高斯数据库使用心得——从性能优化到行业实践的深度解析
数据库·oracle