当前位置: 首页 > news >正文

Mongodb 安装脚本(附服务器自启动)

shell脚本

#!/bin/bash
#mail:xuel@anchnet.com
#function:auto install mongodb
[ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1
logfile="/var/log/mongod_install.log"
softdir="/software"
installdir="/usr/local"
sys_version=$(rpm -q centos-release|cut -d- -f3)
clear
echo "##########################################"
echo "#  Auto Install mongodb for centos6/7.x ##"
echo "#       Press Ctrl + C to cancel        ##"
echo "#       Any key to continue             ##"
echo "##########################################"
echo "(1) Install Mongodb-3.2"
echo "(2) Install Mongodb-3.4"
echo "(3) Install Mongodb-3.6"
echo "(4) EXIT"
read -p "Please input your choice:" NUM
if [ ${sys_version} == "6" ];thencase $NUM in 1)mongodb_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.20.tgz"	software_version="mongodb-3.2";;2)mongodb_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.10.tgz"software_version="mongodb-3.4";;3)mongodb_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.5.tgz"software_version="mongodb-3.6";;4)echo -e "\033[41;37m You choice channel! \033[0m" && exit 0;;*)echo -e "\033[41;37m Input Error! Place input{1|2|3|4} \033[0m" && exit 1;;esac
elif [ ${sys_version} == "7" ];thencase $NUM in 1)mongodb_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.20.tgz"	software_version="mongodb-3.2";;2)mongodb_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.10.tgz"software_version="mongodb-3.4";;3)mongodb_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.5.tgz"software_version="mongodb-3.6";;4)echo -e "\033[41;37m You choice channel! \033[0m" && exit 0;;*)echo -e "\033[41;37m Input Error! Place input{1|2|3|4} \033[0m" && exit 1;;esac
elseecho "system must user centos6/7.x." >>${logfile} 2>&1
fisys_init() {
clear
echo -e "\033[42;5m initialization system... \033[0m"
sleep 2
sed -i "s/SELINUX=enforcing/SELINUX=disabled/"  /etc/selinux/config
if [ ${sys_version} == "6" ];then
/etc/init.d/iptables status >/dev/null
[ $? -eq 0 ] && iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
[ $? -eq 0 ] && /etc/init.d/iptables save >${logfile} 2>&1
elif [ ${sys_version} == "7" ];then
systemctl stop firewalld && systemctl disable firewalld
else
echo "system must user centos6/7.x." >>${logfile} 2>&1
fi
yum -y install wget >/dev/null
setenforce 0
echo "sys_init complate!">> ${logfile} 
}download_software() {
clear
echo -e "\033[42;5m download software... \033[0m"
sleep 2
if [ ! -d ${softdir} ];thenmkdir ${softdir} && cd ${softdir}
elsecd ${softdir}
fi
for software_url in ${mongodb_url}
dowget -c ${software_url} --tries=5if [ $? -eq 0 ];thenfor software in `ls`dotar zxf $software -C $installdirdoneelseecho "download software error!" >> ${logfile} 2>&1 && exit 1fi
done
echo "download_software" >>${logfile}
}install_software() {
clear
echo -e "\033[42;5m install server... \033[0m"
sleep 2
mongodbdir=$(ls ${installdir}|grep "mongodb-linux-x86_64")
ln -s ${installdir}/${mongodbdir} ${installdir}/mongodb
mkdir ${installdir}/mongodb/{conf,mongoData,mongoLog}
touch ${installdir}/mongodb/mongoLog/mongodb.log
echo "export PATH=\$PATH:${installdir}/mongodb/bin">/etc/profile.d/mongodb.sh
source /etc/profile.d/mongodb.sh
cat >${installdir}/mongodb/conf/mongodb.conf <<EOF
dbpath=${installdir}/mongodb/mongoData
logpath=${installdir}/mongodb/mongoLog/mongodb.log
logappend=true
journal=true
quiet=true
port=27017
pidfilepath=/var/run/mongod.pid
#replSet =RS
maxConns=20000
#httpinterface=true
fork=true
#auth=true
EOF
echo "install_software complate!" >>${logfile}
}start_server() {
clear
echo -e "\033[42;5m configuration server... \033[0m"
if [ ${sys_version} == "6" ];then
cat >/etc/init.d/mongodb-server<<EOF
#!/bin/bash
#auth:kaliarch
# mongodb    Startup script for mongodb processes
#
# chkconfig: - 90 10
# description: Mongodb provides fast memory based storage.
# processname: Mongodb
. /etc/rc.d/init.d/functions
bash_dir="/usr/local/mongodb"
mongod="\${bash_dir}/bin/mongod"
config="\${bash_dir}/conf/mongodb.conf"
getpid=\$(pidof mongod)
lockfile="\${bash_dir}/mongodb.lock"
pidfile="/var/run/mongod.pid"
#user=nobody
start() {action $"Starting \$prog: " /bin/true# Starting mongodb on port 27017 as deamon and user nobody\$mongod -f \${config} >/dev/nullRETVAL=$?[ \$RETVAL = 0 ] && touch \${lockfile}return \$RETVAL
}
stop() {if test "x\${getpid}" != x; thenaction $"Stopping \$prog " /bin/truekillall mongod fiRETVAL=\$?[ \$RETVAL = 0 ] && rm -rf \${lockfile} \${pidfile}return \$RETVAL
}
case "\$1" instart)start;;stop)stop;;status)status -p \${pidfile} \${mongod}RETVAL=\$?;;restart)stopstart;;*)echo $"Usage: \$0 {start|status|stop|restart}"exit 1
esac
exit \${RETVAL}
EOF
cd /
chmod +x /etc/init.d/mongodb-server
chkconfig mongodb-server on
service mongodb-server start
elif [ ${sys_version} == "7" ];then
cat >/usr/lib/systemd/system/mongod.service<<EOF
[Unit]
Description=The Mongodb Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --dbpath /usr/local/mongodb/mongoData
[Install]
WantedBy=multi-user.target
EOF
systemctl start mongod
systemctl enable mongod >>${logfile} 2>&1
elseecho "install occer error,please see ${logfile}" && exit 1
fi
}check_server() {
clear
echo -e "\033[42;5m check server status... \033[0m"
server_port=$(netstat -lntup|grep mongod|wc -l)
server_proc=$(ps -ef |grep mongodb.conf|grep -v grep|wc -l)
if [ ${server_port} -gt 0 -a ${server_port} -gt 0 ];thenecho -e "\033[42;37m mongodb-server install successful! \033[0m"echo -e "\033[42;37m version:${software_version}  \033[0m"echo -e "\033[42;37m bashpath:${installdir}/mongodb  \033[0m"
elseecho "install occer error,please see ${logfile}" && exit 1
fi
}main() {
sys_init
download_software
install_software
start_server
check_server
}main

保存 install_mongo.sh

--.查看mongo是否启动
ps aux |grep mongo
--查看是否启动成功
--命令如下
ps -ef|grep mongo

systemctl start mongod.service
systemctl status mongod.service
设置为开机自启动
systemctl enable mongod.service 
systemctl enable mongod //开机自启MongoDB
systemctl start mongod  //启动MongoDB
systemctl status mongod //可以检查是否启动了MongoDB


netstat -an | grep 27017
netstat -ntulp  | grep 27017
netstat -lntup  | grep 27017
netstat -lanp | grep "27017"

find / -name mongodb.conf

cd /usr/local/mongodb-linux-x86_64-rhel70-3.6.5/conf/

vim mongodb.conf

#端口号port = 27017#数据目录dbpath =/var/lib/mongodb/#日志目录logpath =/var/log/mongodb/mongo.log#设置后台运行,守护进程fork = true#日志输出方式----是否追加日志logappend = true#开启认证(暂时不开启)#auth = true#最大同时连接数maxConns=100#不启用验证noauth=true#每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,#然后重放后续的journal日志来恢复。journal=true#存储引擎,有mmapv1、wiretiger、mongorocksstorageEngine=wiredTiger#设置成全部ip可以访问,这样就可以在windows中去连虚拟机的MongoDB,#也可以设置成某个网段或者某个ip1234567891011bind_ip = 0.0.0.0  

7.在shell中使用mongo来连接mongodb,通过mongodb相关命令来进行mongodb的管理cd /usr/local/mongodb/bin./mongo

 

MongoDB对用户的操作

  • 创建用户

MongoDB创建用户必须进入到相关数据库下进行创建


>use admin
>db.createUser({
user: 'admin', // 用户名(自定义)
pwd: 'my_db1', // 密码(自定义)
roles:[{
role: 'root', // 使用超级用户角色
db: 'admin' // 指定数据库
}]})

[root@k8s-vanode1 bin]# systemctl start firewalld 
[root@k8s-vanode1 bin]# firewall-cmd --add-port=27017/tcp --zone=public --permanent
success
[root@k8s-vanode1 bin]# firewall-cmd --reload
success
[root@k8s-vanode1 bin]#  firewall-cmd --zone=public --list-ports
27017/tcp
[root@k8s-vanode1 bin]#  systemctl stop firewalld
[root@k8s-vanode1 bin]# 

相关文章:

Mongodb 安装脚本(附服务器自启动)

shell脚本 #!/bin/bash #mail:xuelanchnet.com #function:auto install mongodb [ $(id -u) ! "0" ] && echo "Error: You must be root to run this script" && exit 1 logfile"/var/log/mongod_install.log" softdir"/s…...

yolov5的pytorch配置

1. conda create -n rdd38 python3.82、pip install torch1.8.0 torchvision0.9.0 torchaudio0.8.0 -f https://download.pytorch.org/whl/cu113/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple 3、conda install cudatoolkit10.2...

ISO 19712-1-2008装饰用实体面材检测

实体面材是指由聚合物材料、填料和颜料组成&#xff0c;经浇筑或压制等工艺成型的板型产品或非板型产品&#xff0c;主要用于厨房台面&#xff0c;家具等领域。 ISO 19712-1-2008装饰用实体面材测试 测试项目 测试标准 耐干热 ISO 19712-3 ISO 19712-2 耐湿热 ISO 19712-…...

华为OD机试 - 最多颜色的车辆 - 数据结构map(Java 2022Q4 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路1、核心思想2、题做多了&#xff0c;你就会发现&#xff0c;这道题属于送分题&#xff0c;为什么这样说&#xff1f;3、具体解题思路&#xff1a; 五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B…...

Mybatis 插入、修改、删除

前面几篇我们介绍了使用Mybatis查询数据&#xff0c;并且也了解了如何在Mybatis中使用JDK的日志系统打印日志&#xff1b;本篇我们继续介绍如何使用Mybatis完成数据的插入、修改和删除。 如果您对查询数据和Mybatis集成JDK日志系统不太了解&#xff0c;建议您先进行了解后再阅…...

2023年9月DAMA-CDGA/CDGP数据治理认证火热招生中

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…...

【SpringCloudAlibaba】Seata分布式事务使用

文章目录 分布式事务问题示例Seata概述、官网一个典型的分布式事务过程处理过程全局GlobalTransactional分布式交易解决方案流程图 Seata安装下载修改conf目录下的application.yml配置文件dashboard demo 分布式事务问题示例 单体应用被拆分成微服务应用&#xff0c;原来的三个…...

Java-day13(IO流)

IO流 凡是与输入&#xff0c;输出相关的类&#xff0c;接口等都定义在java.io包下 1.File类的使用 File类可以有构造器创建其对象&#xff0c;此对象对应着一个文件(.txt,.avi,.doc,.mp3等)或文件目录 File类对象是与平台无关的 File中的方法仅涉及到如何创建&#xff0c;…...

Vue2项目练手——通用后台管理项目第四节

Vue2项目练手——通用后台管理项目 数据的请求mock数据模拟实战文件目录src/api/mock.jssrc/api/mockServeData/home.jsmain.js 首页组件布局可视化图表可视化图表布局Home.vue echarts表Home.vue 数据的请求 mock数据模拟实战 mock官方文档 前端用来模拟后端接口的工具&…...

linux运维(二)内存占用分析

一、centos内存高&#xff0c;查看占用内存, top命令详解 1.1: free 命令是 free 单位K free -m 单位M free -h 单位Gfree最常规的查看内存占用情况的命令 1.2: 参数说明 total 总物理内存 used 已经使用的内存 free 没有使用的内存 shared 多进程共享内存 buff/cache 读写…...

go logger 不侵入业务代码 用slog 替换 zap 并实现 callerSkip

快速体验 以下是 项目中 已经用slog替换 zap 后的 logger 使用方法,无任何感知,与之前一模一样 package mainimport "github.com/webws/go-moda/logger"func main() {// 格式化打印 {"time":"2023-09-08T01:25:21.31346308:00","level&qu…...

vuez 与 Vue3 响应式比较

Vue2 的响应式 对象&#xff1a;通过 defineProperty 对对象的已有属性值的读取和修改进行劫持&#xff08;监视/拦被&#xff09;。 数组&#xff1a;通过重写数组、更新数组等一系列更新元素的方法来实现元素修改的劫持。 存在的问题如下&#xff1a; &#xfeff;&#…...

【Apollo学习笔记】——规划模块TASK之PIECEWISE_JERK_SPEED_OPTIMIZER

文章目录 TASK系列解析文章前言PIECEWISE_JERK_SPEED_OPTIMIZER功能简介PIECEWISE_JERK_SPEED_OPTIMIZER相关配置PIECEWISE_JERK_SPEED_OPTIMIZER流程QP问题的标准类型定义&#xff1a;优化变量设计目标函数约束条件相关矩阵二次项系数矩阵 H H H一次项系数向量 q q q设定OSQP求…...

CNI、CSI 和 CRI在 Docker 中的角色和作用

摘要 CNI&#xff08;Container Network Interface&#xff09;&#xff1a; CNI 是用于容器网络的接口标准&#xff0c;它定义了容器和网络插件之间的通信协议。CNI 的主要作用是为容器创建和管理网络接口。当创建一个容器时&#xff0c;CNI 插件会被调用来为容器创建一个网络…...

「Docker」M1 Pro 打包docker image问题合集

运行docker 遇到 The requested images platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v4) and no specific platform was requested 说明打包的镜像没有 linux/amd64 解决方案&#xff1a;重新打包镜像 docker buildx build --platfor…...

Android发布依赖到 Jitpack

前言 我们在日常开发中&#xff0c;经常会用到第三方开源的库文件&#xff0c;有的来自JCenter&#xff0c;Maven Central&#xff0c;google等。但是随着JCenter的弃用&#xff0c;现在用的最多的还是Maven Central&#xff0c;google。今天我们就自己亲自发布一个依赖。 现…...

【虚拟机开不了】linux、centOS虚拟机出现entering emergency mode解决方案

按他的操作输入journalctl之后输入shiftg到日志最后查看报错发现是xfs&#xff08;dm-0有问题&#xff09; xfs_repair -v -L /dev/dm-0 reboot解决问题...

嘉泰实业举行“互联网金融知识社区”“安全理财风险讲座”等活动

每一次暖心的沟通都是一次公益,真诚不会因为它的渺小而被忽略;每一声问候都是一次公益,善意不会因为它的普通而被埋没。熟悉嘉泰实业的人都知道,这家企业不但擅长在金融理财领域里面呼风唤雨,同时也非常擅长在公益事业当中践行,属于企业的责任心,为更多有困难的群体带来大爱的传…...

《C++设计模式》——结构型

前言 结构模式可以让我们把很多小的东西通过结构模式组合起来成为一个打的结构&#xff0c;但是又不影响各自的独立性&#xff0c;尽可能减少各组件之间的耦合。 Adapter Class/Object(适配器&#xff09; Bridge(桥接&#xff09; Composite(组合) Decorator(装饰) 动态…...

docker-compose安装redis

基于docker-compose快速安装redis 目录 一、目录结构 1、docker-compose.yml 2、redis.conf 二、连接使用 一、目录结构 1、docker-compose.yml version: 3 services:redis:image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:6.0.8 # 镜像red…...

Unity离线语音识别插件:解决无网/隐私/延迟三大痛点

1. 这不是“又一个语音识别SDK”——它解决的是Unity开发者真正卡脖子的三个痛点我在2022年做一款医疗陪护类AR应用时&#xff0c;被语音识别拖垮过整整三个月。当时用的是某云厂商的在线SDK&#xff0c;结果在医院内网环境下&#xff0c;每次识别都要等2.3秒以上&#xff0c;患…...

如何在Mac上免费快速导出微信聊天记录:WeChatExporter终极指南

如何在Mac上免费快速导出微信聊天记录&#xff1a;WeChatExporter终极指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因误删重要微信聊天记录而焦虑&#x…...

taotoken的按token计费模式如何帮助个人开发者控制实验成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken的按Token计费模式如何帮助个人开发者控制实验成本 对于个人开发者、学生或独立研究者而言&#xff0c;在探索AI应用或进行…...

终极指南:BetterNCM插件管理器一键安装,让网易云音乐焕然新生

终极指南&#xff1a;BetterNCM插件管理器一键安装&#xff0c;让网易云音乐焕然新生 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐功能单一而烦恼&#xff1f;Bett…...

Windows应用层Hook原理与合规实践指南

我不能按照您的要求生成关于“逆向微信4.0撤回机制&#xff1a;从符号恢复到DLL劫持实战”的博文内容。原因如下&#xff1a;违反平台安全与合规底线&#xff1a;该标题明确指向对微信客户端的逆向分析、符号恢复及DLL劫持等行为。微信作为受法律保护的商用即时通讯软件&#x…...

2026某同城数据采集实战:图片验证码+短信轰炸防护全解析与避坑指南

最近帮朋友做一个房产数据分析项目&#xff0c;需要从某同城平台采集一些公开的房源信息。本以为是个简单的爬虫任务&#xff0c;结果踩了无数坑——从最基础的滑块验证到复杂的行为轨迹分析&#xff0c;从IP封禁到设备指纹检测&#xff0c;特别是他们今年刚升级的短信轰炸防护…...

Taotoken用量看板与成本管理,让团队模型开销一目了然

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken用量看板与成本管理&#xff0c;让团队模型开销一目了然 当团队开始将多个大语言模型应用于不同业务场景时&#xff0c;一…...

3分钟快速上手Vin象棋:基于YOLOv5的智能中国象棋连线工具终极指南

3分钟快速上手Vin象棋&#xff1a;基于YOLOv5的智能中国象棋连线工具终极指南 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi 你是否厌倦了手动记录棋局的…...

手把手教你为RV1126调试Sony IMX585:从设备树到驱动移植的完整避坑指南

RV1126平台Sony IMX585传感器移植实战&#xff1a;从设备树到图像调优的全流程解析 当拿到一块搭载RV1126芯片的开发板和Sony IMX585传感器模组时&#xff0c;如何快速完成从硬件对接到图像输出的完整流程&#xff1f;本文将深入剖析每个关键环节的技术细节与实战经验&#xf…...

告别手动打字:87种语言视频字幕5分钟本地提取全攻略

告别手动打字&#xff1a;87种语言视频字幕5分钟本地提取全攻略 【免费下载链接】video-subtitle-extractor 视频硬字幕提取&#xff0c;生成srt文件。无需申请第三方API&#xff0c;本地实现文本识别。基于深度学习的视频字幕提取框架&#xff0c;包含字幕区域检测、字幕内容提…...