1. 脚本概述
本脚本用于在 CentOS 7.9 系统上在线安装 MongoDB,自动处理端口占用和重复安装问题,并创建管理员用户 test8,密码 test123。
2. 功能
-
停止并关闭防火墙
-
检查 27017 端口占用并结束进程
-
如果已安装 MongoDB,卸载重装
-
配置 MongoDB 官方 yum 源并安装 MongoDB
-
创建数据目录和日志目录
-
启动 MongoDB 并设置开机自启
-
创建 test8 用户并授予 root 权限
-
验证用户登录
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 配置完成"