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 配置完成"
相关推荐
小峰编程1 分钟前
Redis 集群模式
数据库·redis·bootstrap
填满你的记忆7 分钟前
MySQL 索引:从底层类型到面试避坑
数据库·mysql·面试
LSL666_18 分钟前
8 Redis 高可用进阶(主从容灾→选举机制→哨兵机制)
数据库·redis·缓存
ILL11IIL28 分钟前
Mysql 集群技术
数据库·mysql·mha
茉莉玫瑰花茶35 分钟前
C++ ORM 实战:ODB 框架全解析(Linux + MySQL)
jvm·数据库·oracle
chushiyunen41 分钟前
django日志使用笔记
数据库·笔记·django
听雪楼主.1 小时前
某客户核心业务系统报ORA-600错误分析处理
数据库·oracle
威联通安全存储1 小时前
严谨性的数字基石:某精密医疗器械企业基于威联通的数据治理实践
运维·数据库·python
不剪发的Tony老师1 小时前
DbPaw:一款AI驱动的现代化数据库开发工具
数据库
何中应1 小时前
CentOS7安装高版本Node.js
前端·centos·node.js