需求背景:
机房或者客户现场可能会出现无网络的情况,但是需要安装mongodb到服务器,并且实现开机自启动
类似方式安装nginx可以查看本人另一篇文章,附上点击链接:
类似方式安装mysql可以查看本人另一篇文章,附上点击链接;
类似方式安装JDK1.8可以查看本人另一篇文章,附上点击链接;
类似方式安装redis可以查看本人另一篇文章,附上点击链接;
实现思路:
下载需要的rpm包,通过rpm的安装方式进行安装,本人通过Vmware来模拟需求背景,真实情况也一样,可以通过U盘或者光盘达到上传安装包的效果。
第一步:
安装的mongodb版本tgz-----------mongodb-linux-x86_64-rhel70-v4.2-latest.tgz;
下载地址:
https://www.mongodb.org/dl/linux/x86_64-rhel70
(打开后超级多,然后复制上面安装包版本,直接ctrl+f进行搜索,找到后点击蓝色的直接就能下载,不能的话就自己去找过一个安装包)如下图
或者网盘下载:
链接:https://pan.baidu.com/s/1i2yDv_Ft7qBAh3-7fSyb2g
提取码:1030
同时需要一起下载另外一个rpm安装包:jemalloc-3.6.0-1.el7.x86_64.rpm(网上搜索主要该rpm用于内存管理)
下载地址:
https://repo.percona.com/yum/release/7/RPMS/x86_64/jemalloc-3.6.0-1.el7.x86_64.rpm
(直接就能下载,不能的话就自己去找过一个安装包)
第二步
脚本文件,我是直接把下载好的安装包和rpm包和脚本文件一起放在/root路径下面
第三步
mongodb4.2.sh文件内容
#!/bin/bash
# CentOS Linux release 7.7.1908 (Core)
# 安装 compat-openssl10-1.0.2o-3.el8.x86_64.rpm ,mongodb的依赖
install_openssl10(){
# 用rpm安装openssl
rmp -ivh /root/compat-openssl10-1.0.2o-3.el8.x86_64.rpm
}
# mongodb安装过程
run_install_mongodb(){
# mongodb的安装目录
mongodb_path=/usr/local/
# 数据库存放位置
mongodb_data_dir=/usr/local/mongodb/mongodb_data
# 日志存放的文件
mongodb_logs_file=/usr/local/mongodb/logs/mongodb_log
# 开启的端口号
port=27017
# 守护进程方式运行mongodb
fork=true
# 绑定IP地址,0.0.0.0表示允许所有ip链接mongodb
bind_ip=0.0.0.0
echo "Install MongoDB"
cd $mongodb_path
# 调用函数, 下载安装openssl10
install_openssl10
# 解压mongodb
tar -xzvf /root/mongodb-linux-x86_64-rhel70-v4.2-latest.tgz
# 获取解压后的文件名
new_name=$(ls ./ | grep ^mongodb | grep -v tgz$)
# 重命名
mv ./$new_name mongodb
# 进入mongodb文件夹
cd mongodb
# 创建数据库文件
mkdir -p ./mongodb_data
# 创建数据库日志目录和文
mkdir -p ./logs && touch ./logs/mongodb_log
# 将mongod添加至环境变量
echo export PATH="$PATH":$mongodb_path"mongodb/bin" >> /etc/bashrc
# 激活配置文件
source /etc/bashrc
# 创建mongodb的配置文件
cd $mongodb_path"mongodb"
touch ./bin/mongodb.conf
# 写入配置信息
echo 'dbpath = '$mongodb_data_dir >> ./bin/mongodb.conf
echo 'logpath = '$mongodb_logs_file >> ./bin/mongodb.conf
echo 'port = '$port >> ./bin/mongodb.conf
echo 'fork = '$fork >> ./bin/mongodb.conf
echo 'bind_ip = '$bind_ip >> ./bin/mongodb.conf
#添加自启动
cp /root/mongodbd /usr/local/mongodb
cp /root/mongodb.service /lib/systemd/system/
chmod 754 /lib/systemd/system/mongodb.service
systemctl enable mongodb.service
echo "自启动添加成功"
systemctl start mongodb.service
}
# 安装MongoDB
install_mongodb(){
# mongodb的安装目录
mongodb_path=/usr/local/
command -v mongod;
# 判断上一条命令是否正确时执行,如果正确执行说明已经安装了mongodb
if [ $? -eq 0 ];
then
echo "MongoDB is exited"
elif [ -f /usr/local/mongodb-linux-x86_64-rhel70-v4.2-latest.tgz ];
then
# 如果存在,则删除
rm -rf /usr/local/mongodb-linux-x86_64-rhel70-v4.2-latest.tgz
echo " -------- rm mongodbs ---------"
run_install_mongodb
else
run_install_mongodb
fi
}
install_mongodb
mongodb.service (这个是自启动需要的脚本,这个脚本需要把他放到路径/lib/systemd/system/下,脚本里面已经写好了;!!!!尝试过通过/etc/rc.local下这个方法不行)
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/bin/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
其他基本不用改,把ExecStop;ExecStart换成自己的就可以。安装的时候,默认的就是这样的,也可以不用改,要改的话可以(whereis xxx)这个命令搜索一下具体文件
mongodbd这个文件提供了一些暂停,启动的方法,mongodb4.2.sh脚本里面已经写好了默认复制到安装mongodb的位置,附上内容,仅供参考:文件头顶部的/etc/init.d/mongodbd自己尝试过开机重启的时候不可用,故采用mongodb.service方式
!!!!!!!!!!!!以上这些都好了的话,
1、切到/root路径下面 cd /root
2、执行命令:bash /root/mongodb4.2.sh 如下图:
3、重启系统:reboot now
4、输入查看进程命令:ps aux|grep mongo;如下图
或者运行命令:mongo;如下图:
然后就可以看到成功了,有疑问欢迎留言,有问题欢迎大佬指出。