CentOS7.9 部署单机版 mongodb,含 mongosh
- 默认无需密码登录,如果是生产环境,请开启访问认证
- Mongod版本、安装包存储路径、安装目录可根据需求修改对应变量值
- 目录结构如下:
/opt/mongod/
├── bin
│ ├── install_compass
│ ├── mongod
│ └── mongos
├── conf
│ └── mongod.conf
├── data
│ └── db
├── LICENSE-Community.txt
├── logs
│ └── mongodb.log
├── MPL-2
├── README
└── THIRD-PARTY-NOTICES
脚本如下
#! /bin/bash
START_TIME=$(date +%s)
APP_DIR=/opt
APP_SOURCE=/opt/source
APP_PACKAGE_VERSION=mongodb-linux-x86_64-rhel70-7.0.6
if [ ! -f $APP_SOURCE/$APP_PACKAGE_VERSION.tgz ];then
echo "下载 mongodb安装包"
wget -P ${APP_SOURCE} https://fastdl.mongodb.org/linux/$APP_PACKAGE_VERSION.tgz
if [ $? -ne 0 ];then
echo "mongdb 安装包下载异常,请重新下载"
exit
else:
echo "mongodb 安装包已下载完成"
fi
fi
echo "开始解压mongodb安装包"
tar -xzvf ${APP_SOURCE}/$APP_PACKAGE_VERSION.tgz -C $APP_DIR
if [ -d $APP_DIR/mongod ];then
rm -rf $APP_DIR/mongod
fi
mv ${APP_DIR}/$APP_PACKAGE_VERSION $APP_DIR/mongod
mkdir -p $APP_DIR/mongod/logs $APP_DIR/mongod/conf $APP_DIR/mongod/data/db
touch /$APP_DIR/mongod/conf/mongod.conf
cat > /$APP_DIR/mongod/conf/mongod.conf << EOF
port=27017
dbpath=$APP_DIR/mongod/data/db # 指定数据库路径
logpath=$APP_DIR/mongod/logs/mongodb.log # 指定日志文件路径
logappend=true # 使用追加方式写日志
fork=true # 以守护进程的方式运行
maxConns=200 # 最大同时连接数
noauth=true # 不启用验证
#auth=true
#journal=true # 每次写入会记录一条操作日志
storageEngine=wiredTiger # 存储引擎
bind_ip=0.0.0.0 # 服务绑定地址
EOF
echo "将mongodb配置成服务"
touch /usr/lib/systemd/system/mongod.service
cat > /usr/lib/systemd/system/mongod.service << EOF
[Unit]
Description=mongod.service
After=network.service
[Service]
Type=forking
ExecStart=$APP_DIR/mongod/bin/mongod -f $APP_DIR/mongod/conf/mongod.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
echo "启动mongodb"
systemctl daemon-reload
systemctl start mongod
if [ $? -ne 0 ];then
echo "mongodb 启动失败"
else
echo "mongodb 启动成功,将mongodb 设置成开机启动"
fi
systemctl enable mongod
echo "安装mongosh"
wget -P ${APP_SOURCE} https://downloads.mongodb.com/compass/mongodb-mongosh-1.10.0.x86_64.rpm
cd ${APP_SOURCE} && rpm -ivh mongodb-mongosh-1.10.0.x86_64.rpm
if [ $? -ne 0 ];then
echo "mongosh 安装出现异常"
exit 0
else
echo "mongosh 已安装完成"
echo "部署过程总耗时:$(expr $(date +%s) - $START_TIME) 秒"
fi
开启认证登录
登录mongodb
mongosh --host 127.0.0.1 --port 27017
选择admin库
use admin
创建管理员账号,密码为 Money^o617,自行修改密码,给管理权限
db.createUser(
{
user: "admin",
pwd: "Money^o617",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)
创建普通用户,密码为AnShine^o617,自行修改, 给只读写权限
use logger
db.createUser({
user: "as_user",
pwd: "AnShine^o617",
roles: [ { role: "readWrite", db: "as_market" } ]
})
修改配置项,vim /opt/mongod/conf/mongod.conf
注释 noauth=true # 不启用验证 行
启用 auth=true
重启mongodb
systemctl restart mongod