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 小时前
PostgreSQL高可用集群部署与配置指南
数据库·postgresql
利刃大大1 小时前
【MyBatis】MyBatis操作动态sql && MyBatisGenerator
数据库·sql·mybatis
一瓢西湖水2 小时前
loader命令导出大批量数据维护SQL
数据库·sql
颜颜yan_3 小时前
时序数据库选型指南:工业物联网时代如何选择数据底座
数据库·物联网·时序数据库
云和数据.ChenGuang3 小时前
Logstash配置文件的**语法解析错误**
运维·数据库·分布式·rabbitmq·jenkins
CICI131414133 小时前
焊接机器人负载能力选择标准
网络·数据库·人工智能
minhuan3 小时前
大模型应用:从交易行为到实时反欺诈:向量数据库驱动的智能风控实践.33
数据库·向量数据库·大模型应用·chromadb数据库
晴天¥3 小时前
Oracle中的安全管理(用户、权限、角色)
数据库·安全·oracle
Jelly-小丑鱼4 小时前
Linux搭建SQLserver数据库和Orical数据库
linux·运维·数据库·sqlserver·oracal·docker容器数据库
JIngJaneIL4 小时前
基于springboot + vue健康管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端