1. 腳本概述
本腳本用于在 CentOS 7.9 系統上在線安裝 MongoDB,自動處理端口占用和重復安裝問題,并創建管理員用戶 test8,密碼 test123。
2. 功能
停止并關閉防火墻
檢查 27017 端口占用并結束進程
如果已安裝 MongoDB,卸載重裝
配置 MongoDB 官方 yum 源并安裝 MongoDB
創建數據目錄和日志目錄
啟動 MongoDB 并設置開機自啟
創建 test8 用戶并授予 root 權限
驗證用戶登錄
#!/bin/bash set -e# 關閉防火墻 systemctl stop firewalld systemctl disable firewalld# 檢查并結束27017端口占用 PORT=27017 PID=$(lsof -t -i:$PORT || true) if [ -n "$PID" ]; thenecho "端口 $PORT 被進程 $PID 占用,正在結束進程..."kill -9 $PID fi# 如果已安裝MongoDB,卸載 if rpm -qa | grep -q mongodb-org; thenecho "檢測到已安裝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 }) EOFecho "MongoDB 在線安裝與用戶 test8 配置完成"