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 分钟前
接入MIC(中国制造)接口的帮助
网络·数据库·制造
礼拜天没时间.2 分钟前
Docker基础操作——镜像与容器管理
linux·运维·服务器·docker·容器·centos
Jacob程序员3 分钟前
达梦数据库私有服务配置指南
linux·服务器·数据库
fen_fen4 分钟前
Docker MongoDB 配置 0.0.0.0 监听(外部可访问)操作文档
mongodb·docker·eureka
isNotNullX5 分钟前
数据分析没思路?5 个核心流程帮你理清所有步骤
数据库·数据挖掘·数据分析
OceanBase数据库官方博客6 分钟前
高德刘振飞:从自研 OceanBase,回望数据库技术范式变迁
数据库·oceanbase·分布式数据库·高德
Tony Bai13 分钟前
Git 即数据库:Beads (bd) —— 专为 AI Agent 打造的分布式任务追踪引擎
数据库·人工智能·分布式·git
yufuu9813 分钟前
进阶技巧与底层原理
jvm·数据库·python
2301_8174973314 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
xdpcxq102919 分钟前
.NET Core 双数据库 PostgreSQL 与 SQLite 和平共处
数据库·postgresql·.netcore