linux mongodb开机启动脚本,Centos7下Mongodb开机无法自启动的解决方法

前言

首先下载的mongodb有bug,需要自己手动fix,这种只是对特定版本有问题,并非所有版本都有这个问题,

SeLinux

另外,一定要把selinux设置为disabled或者permissive

问题描述

sudo systemctl status mongod.service

看到服务起不来,于是打开log文件:

cat /var/log/mongodb/mongod.log

有如下问题,是因为无法创建pid文件

***** SERVER RESTARTED *****

ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory

Centos7系统每次会把/var/run下面的一些项目清理,所以下次重起来的时候就没有了这个文件了,现在的systemd启动的话,没有什么好办法处理这个文件,因为systemd启动就是执行一个命令:

/usr/bin/mongod --quiet -f /etc/mongod.conf run

处理方案

自己创建一个永久的文件路径,以及这个pid文件

修改配置文件/etc/mongod.conf里面的pid路径,然后修改systemd条目的路径。

具体操作

1.创建文件,并修改权限

[azuo1228@ecs-ee2fe26e /]$ sudo mkdir /mongod

[azuo1228@ecs-ee2fe26e /]$ sudo touch /mongod/mongod.pid

[azuo1228@ecs-ee2fe26e /]$ sudo chown -R mongod:mongod /mongod

2.修改配置

[azuo1228@ecs-ee2fe26e /]$ sudo vim /etc/mongod.conf

把里面的:

pidFilePath: /var/run/mongodb/mongod.pid

修改为创建的文件:

pidFilePath: /mongod/mongod.pid

3.修改systemd条目

[azuo1228@ecs-ee2fe26e ~]$ sudo vim /etc/systemd/system/multi-user.target.wants/mongod.service

把里面的:

PIDFile=/var/run/mongodb/mongod.pid

修改为制定的文件的路径:

PIDFile=/mongod/mongod.pid

4. reload systemd

[azuo1228@ecs-ee2fe26e ~]$ sudo systemctl daemon-reload

5. 启动mongod或者重起电脑

[azuo1228@ecs-ee2fe26e ~]$ sudo service mongod start

6.查看状态

[azuo1228@ecs-ee2fe26e ~]$ sudo systemctl status mongod.service

NOTE 1:

mongodb安装更新之后,mongo.conf不会更新,但是,会更新

/etc/systemd/system/multi-user.target.wants/mongod.service

,装一个新的

/etc/systemd/system/multi-user.target.wants/mongod.service

所以,也会起不来。

如果有按照上面设置过conf文件,也需要再次修改这个systemd文件。

NOTE 2:

更新的mongodb 3.4.1,已经修正了这个问题

[azuo1228@Server ~]$ sudo rpm -qa | grep mongo

mongodb-org-3.4.1-1.el7.x86_64

mongodb-org-shell-3.4.1-1.el7.x86_64

mongodb-org-tools-3.4.1-1.el7.x86_64

mongodb-org-mongos-3.4.1-1.el7.x86_64

mongodb-org-server-3.4.1-1.el7.x86_64

[azuo1228@Server ~]$

总结

以上就是关于解决Centos 7上面Mongodb开机无法自启动的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。 ad51e517755f8fd6a7ec83ced4ecfaf3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是分别针对CentOS系统下的源码一键部署安装配置Redis持久化存储、MongoDB和Nginx的脚本,以及CentOS系统下源码一键部署安装配置Redis数据库的脚本。请注意,这些脚本仅供参考,使用前请仔细检查并根据自己的需要进行相应的修改。 1. CentOS系统下源码一键部署安装配置Redis持久化存储脚本 ``` #!/bin/bash # 安装Redis相关依赖 yum install -y gcc make wget # 下载Redis源码 wget http://download.redis.io/releases/redis-6.2.5.tar.gz # 解压Redis源码 tar -zxvf redis-6.2.5.tar.gz # 进入Redis源码目录 cd redis-6.2.5 # 编译Redis源码 make # 安装Redis make install # 创建Redis配置文件 cp redis.conf /etc/redis.conf # 修改Redis配置文件 sed -i 's/daemonize no/daemonize yes/g' /etc/redis.conf sed -i 's/# requirepass foobared/requirepass yourpassword/g' /etc/redis.conf sed -i 's/# appendonly no/appendonly yes/g' /etc/redis.conf # 启动Redis服务 redis-server /etc/redis.conf ``` 2. CentOS系统下源码一键部署安装配置MongoDB脚本 ``` #!/bin/bash # 安装MongoDB相关依赖 yum install -y gcc make wget # 下载MongoDB源码 wget https://fastdl.mongodb.org/src/mongodb-src-r4.4.6.tar.gz # 解压MongoDB源码 tar -zxvf mongodb-src-r4.4.6.tar.gz # 进入MongoDB源码目录 cd mongodb-src-r4.4.6 # 编译MongoDB源码 scons # 安装MongoDB scons --prefix=/usr/local/mongodb install # 创建MongoDB配置文件 mkdir /usr/local/mongodb/conf cp ./mongod.conf /usr/local/mongodb/conf/mongod.conf # 修改MongoDB配置文件 sed -i 's/#auth = true/auth = true/g' /usr/local/mongodb/conf/mongod.conf # 启动MongoDB服务 /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongod.conf ``` 3. CentOS系统下源码一键部署安装配置Nginx脚本 ``` #!/bin/bash # 安装Nginx相关依赖 yum install -y gcc make wget zlib-devel openssl-devel pcre-devel # 下载Nginx源码 wget http://nginx.org/download/nginx-1.21.0.tar.gz # 解压Nginx源码 tar -zxvf nginx-1.21.0.tar.gz # 进入Nginx源码目录 cd nginx-1.21.0 # 编译Nginx源码 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre make && make install # 创建Nginx配置文件 cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak cat > /usr/local/nginx/conf/nginx.conf <<EOF user www www; worker_processes auto; error_log /usr/local/nginx/logs/error.log; pid /usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include mime.types; default_type application/octet-stream; log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" ' '\$status \$body_bytes_sent "\$http_referer" ' '"\$http_user_agent" "\$http_x_forwarded_for"'; access_log /usr/local/nginx/logs/access.log main; sendfile on; tcp_nopush on; keepalive_timeout 60s; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } } server { listen 443 ssl; server_name localhost; ssl_certificate /usr/local/nginx/conf/server.crt; ssl_certificate_key /usr/local/nginx/conf/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } } } EOF # 启动Nginx服务 /usr/local/nginx/sbin/nginx ``` 4. CentOS系统下源码一键部署安装配置Redis数据库一键自己部署安装脚本 ``` #!/bin/bash # 安装Redis相关依赖 yum install -y gcc make wget # 下载Redis源码 wget http://download.redis.io/releases/redis-6.2.5.tar.gz # 解压Redis源码 tar -zxvf redis-6.2.5.tar.gz # 进入Redis源码目录 cd redis-6.2.5 # 编译Redis源码 make # 安装Redis make install # 创建Redis目录 mkdir /usr/local/redis # 将Redis配置文件复制到Redis目录下 cp redis.conf /usr/local/redis/redis.conf # 设置Redis为后台运行模式 sed -i 's/daemonize no/daemonize yes/g' /usr/local/redis/redis.conf # 设置Redis密码 sed -i 's/# requirepass foobared/requirepass yourpassword/g' /usr/local/redis/redis.conf # 设置Redis持久化 sed -i 's/# appendonly no/appendonly yes/g' /usr/local/redis/redis.conf # 启动Redis服务 redis-server /usr/local/redis/redis.conf ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值