How to Install MongoDB on CentOS7 Gracefully

ConcurrentHashMap源码解析(jdk1.8) ConcurrentHashMap 基于JDK1.8 ConcurrentHashMap 1. 原理解析 1.1. 重要成员变量 1.2. 实例初始化 1.3. put操作 1.3.1 put过程描述 1.3.2 hash算法 1.3.3 定位索引 1.3.4 获取table对应的索引元素f 1.4. table 扩容 1.4.1 addCount 1.4.2 treeify ... 阅读详情

倒腾MongoDB好几天,强迫症的老人家发现了这些问题:

  • 其实安装MongoDB不难,但是有没有发现启动起来很麻烦?关闭看进程号,再kill掉T…T

  • 有没有更加gracefully使用MongoDB?

  • 能不能让它随着服务器启动而启动?或者是我想让它启动再启动?

安装环境

还是那句老话,不讲环境的安装教程都是耍流氓~
系统安装环境

安装MongoDB

下载官方安装源

官方下载地址
选择自己合适的版本
根据自己是CentOS7,选择了
RHEL 7 Linux 64-bit x64

CentOS全名为“社区企业操作系统”(Community Enterprise Operating System)
Red Hat Enterprise Linux(缩写为RHEL,Red Hat的企业版)。RedHat Enterprise Linux又分为4个版本 Advanced Server(AS)、ES Workstation(WS)、Desktop,它们的差别不太大,只是功能方面的差别。Advanced Server,缩写即AS。AS在标准Linux内核的基础上,做了性能上的增强,并提高了可靠性,集成了众多常见服务器的驱动程序。
RHEL 在发行的时候,有两种方式。一种是二进制的发行方式,另外一种是源代码的发行方式。无论是哪一种发行方式,你都可以免费获得(例如从网上下载),并再次发布。RHEL 一直都提供源代码的发行方式,CentOS 就是将 RHEL 发行的源代码从新编译一次,形成一个可使用的二进制版本。由于 LINUX 的源代码是 GNU,所以从获得 RHEL 的源代码到编译成新的二进制,都是合法。只是 REDHAT 是商标,所以必须在新的发行版里将 REDHAT 的商标去掉。
**就是,CentOS是相应版本RHEL的二进制版本。**CentOS7对应的是RHEL7的二进制发行版本。

解压与安装

tar zxvf mongodb-linux-x86_64-rhel70-3.2.10.tgz
mv mongodb-linux-x86_64-rhel70-3.2.10 /usr/local
cd /usr/local
mv mongodb-linux-x86_64-rhel70-3.2.10 mongodb

解压–>将安装包移动到合适的安装路径 –>进入安装路径–>安装包重命名

启动mongodb服务

mongo启动路径

sudo mkdir -p /var/mongodb/data /var/mongodb/logs/mongoLog.log
sudo /usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath=/var/mongodb/logs/mongoLog.log --fork

在执行sudo /usr/local/mongodb/bin/mongod保证具有x(执行权限),否则需要添加执行权限:

sudo chmod a+x /usr/local/mongodb/bin/mongod

有没有发现要启动Mongo的服务要写好长T…T
假如要关闭服务
sudo /usr/local/mongodb/bin/mongod --shutdown
也很长,有没有更好的更优雅的使用方式呢?

到这一步,mongoDB已经可以执行使用了,但是这样使用起来会比较麻烦,所以可以考虑一个更加快捷安全的使用方式

配置文件

sudo mkdir /usr/local/mongodb/etc
sudo vim /usr/local/mongodb/etc/mongodb.conf

mongodb.conf
搞清楚参数之后,完完全全可以按需写配置文件
配置参数释义

编写启动/暂停mongo脚本

sudo mkidir /usr/local/mongodb/srv
sudo vim /usr/local/mongodb/srv/mongodb-start

这里写图片描述
mongod指令参数解释:-f 运行配置文件

sudo vim /usr/local/mongodb/srv/mongodb-stop

mongodb-stop
最后记得添加可执行权限

sudo chmod a+x /usr/local/mongodb/srv/mongodb-stop /usr/local/mongodb/srv/mongodb-start

添加mongo服务

vim /etc/rc.d/init.d/mongodb

mongodb服务脚本

test -x $DAEMON || exit 0 #判断当前文件是否可执行,否则退出
set -e #设置了这个选项后,当一个命令执行失败时,shell会立即退出。

在/etc文件夹下,执行ls -d rc*,会列出下面这些文件和目录:
rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.d rc.local
\根据RunLevel执行rc 。rc脚本会到相应的rcN.d中去执行下面的脚本。rc.local是最后调用的脚本,可以放一些用户自定义的任务在里面。

现在一切都清晰了。我们可以通过在相应的rcN.d文件夹下按既定的规范创建/etc/init.d下脚本的软链接的方式来控制系统启动和退出时服务的启动和结束。但是用手动的方式创建软链接来管理毕竟不方便,RedHatLinux提供了chkconfig来帮助创建这些软链接。只要放在/etc/init.d下的服务控制脚本符合前面提到的chkconfig的约定(注释chkconfig 和 description),就可以用chkconfig –add chkconfig –list chkconfig –del 等命令来控制service的启动与否。

chmod a+x /etc/rc.d/init.d/mongodb
chkconfig --add mongodb
chkconfig --level 345 mongodb on

快捷启动

sudo ln -s /etc/rc.d/init.d/mongodb /usr/bin/mongodb

启动mongodb服务
启动服务
终止mongodb服务
停止服务

有时候还需要使用到mongo的命令行窗口,接着之前的文章Linux快速启动应用程序,也给mongo的命令行添加一个软连接

sudo ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo

进入mongo shell状态
mongo shell
warning暂时没有威胁到使用,所以就暂时搁置了

知识补充(待更)

============2016.11.17更新补充=============

chkconfig --level 345 mongodb on 

到底发生了什么?可以看看/etc/rc.d/的目录结构

ls -R /etc/rc.d/

rc.d-1
rc.d-2

看到这里有那么几个问题:
- rcN.d是什么?
- SNNXX,KNNXX又是什么?
所以需要搞清楚以下几个问题,让它成为“common sense”^_^

Linux启动过程中的/etc/rc.d

这里,只讲解涉及到/etc/rc.d的部分,linux的启动过程是门艺术

  • init.d/ :各种服务器和程序的二进制文件或脚本的存放目录。执行这些脚本可以用来启动,停止,重启这些服务。

  • rcN.d/:各个启动级别的执行程序连接目录。rcN.d/目录之下放的其实是真正启动程序的软连接,真正的启动程序一般存放于/etc/rc.d/init.d/之下

  • rc.local 链接文件,指到/etc/rc.d/rc.local。是系统初始化及服务均启动完毕后,最后执行的一个脚本,一些简单的脚本可以放到其中

CentOS启动后在/etc/rc.d的执行顺序如下:

/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式 ,根据$RUNLEVEL调用相关启动脚本,以启动相应的系统服务
/etc/rc.d/rc.local  #其他一些系统设置,最终完成系统启动

运行级别

Run levelNameDescription
0Halt关机时进入
1Single-user mode超级用户模式,在系统启动出出错、文件系统出错等情况下进入
2Multi-User Mode(without networking)多用户模式,如果你没有网络接口可以配置进入此模式
3Multi-User Mode多用户模式
4Not used/user definable保留,用户也可以使用该运行级别来自定义自己的需求
5GUI mode图形界面模式
6Reboot重启时进入
s or SSingle-user/Maintenance mode特殊用途

K与S

带K的表示停止(Kill)一个服务,S表示开启(Start)
K和S后面带的数字是用来排序,决定这些脚本执行的顺序,数值小的先执行,数值大的后执行。
比如,当运行级别是4,会先开启network,再开启MongoDB
这里写图片描述

S给和K还分别给init.d下面的脚本传递了start和stop的参数。传S时相当于执行了/etc/rc.d/init.d/xxx start这条命令,K就相当于/etc/rc.d/init.d/xxx stop了。

参考目录

https://docs.mongodb.com/manual/tutorial/
http://monklof.com/post/14/
http://www.cnblogs.com/balaamwe/archive/2012/01/16/2323665.html
https://my.oschina.net/pwd/blog/399374
http://www.haorooms.com/post/3m

远程访问neo4j 动机采用REST来远程访问neo4j的数据库 同时在本地浏览器查看数据是否添加正确(neo4j的可视化界面x.x.x.x:7474/browser)即,通过HTTP协议来与neo4j进行交互环境配置Linux 版本$ lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch 阅读详情

相关推荐

Linux快速启动应用程序

刚从windows转linux系统,一般都需要通过图形界面过渡一下。随着安装的软件增多,尤其是一些编程用的IDE,比如JB家的软件,每次都要cd xx/xx/xx/bin,然后再运行脚本,所以觉得十分麻烦。所以就想想能不能不要那么麻烦,快速地启动应用程序呢?不会偷懒的程序猿不是好攻城狮。下面是我的解决问题的思路。环境一切不说版本的安装教程都是耍流氓TT 系统:CentOS 7 桌面系统版本

programmer_at的专栏 1万+

CentOS7系统下MongoDB7服务安装

CentOS7系统下MongoDB7服务安装

u010100623的博客 1881

neo4j 3.0多数库切换

动机 类似与关系型数据库,创建了多个数据库 想要像访问关系型数据库那样来可以无缝切换多个数据库 然而,在neo4j 3.0都暂时没有办法做到:每次启动neo4j,它只能读取一个数据库。 比如,现在有两个数据库graph.db,graph2.db。假设neo4j默认的数据库为graph.db,启动neo4j,这时候想要访问graph2.db,必须修改neo4j的配置文件,将数据库改为graph2.d

programmer_at的专栏 1万+

CentOS7下安装MongoDB

例如,若要安装 MongoDB 6.0 版本,可将 mongodb-org-7.0 替换为 mongodb-org-6.0,并将 baseurl 和 gpgkey 中的 7.0 替换为 6.0。如果你的系统启用了防火墙,需要开放 MongoDB 默认端口(27017),以便其他机器可以连接到 MongoDB 服务器。你需要创建一个 MongoDB 的 Yum 仓库配置文件,以便从官方源下载 MongoDB。这将打开 MongoDB 的交互式 shell,你可以在其中执行 MongoDB 的命令。

weixin_41422954的博客 846

基于树莓派与ROS的桌面机器人开发:从硬件组装到AI集成实战

嵌入式系统与机器人操作系统(ROS)是构建智能硬件的核心技术基础。嵌入式系统为设备提供了专用计算与控制能力,而ROS作为机器人开发的中间件框架,通过节点、话题和服务等机制,实现了感知、决策、执行等模块间的松耦合通信与高效集成。这种架构极大地提升了机器人系统的可扩展性与可维护性,其技术价值在于能够将复杂的AI算法,如计算机视觉和语音识别,与实体硬件执行机构无缝结合,从而快速构建出具备环境交互能力的智能体。在桌面机器人、教育套件及服务机器人原型开发等应用场景中,该技术栈尤为适用。本文以开源的Wall-E桌面机器

weixin_26775679的博客 649

极空间NAS零基础部署Wiki.js:Docker+PostgreSQL全流程避坑指南

本文提供了一份在极空间NAS上从零部署Wiki.js私有知识库的详细指南。通过Docker容器化技术,结合PostgreSQL数据库,手把手讲解环境准备、核心组件配置、性能优化及安全加固等全流程,并特别针对极空间平台特性提供了避坑要点,帮助用户打造安全、高效、自主可控的知识管理系统。

3a9bq4r8t2y的博客 485

centos7篇---centos7中安装mongodb

centos7中安装mongodb

心惠天意 8748

基于人脸识别的智能门禁系统设计

在当前的技术背景下,本文精心打造了一款前沿的视频识别门禁控制系统。在进行调试的时候使用的软件是Keil,编写完代码,生成文件后用下载器下载到单片机上,就能够进行程序的调试了,本次设计实现了预先设定的目标,达到了预期的效果。本次设计的人脸识别的门禁控制系统其硬件部分是以STM32F103C8T6为核心的单片机,采用0V2640摄像头对人员的人脸识别,采用矩阵按键对系统的操作以及密码的输入,使用蜂鸣器来作为报警模块,开门装置是电子锁控制,显示设备采用OLED液晶显示,无线模块在一番思索后选择了蓝牙模块传输。

2401_86147581的博客 1296

How To Install MongoDB On Mac OS X

A guide to show you how to install MongoDB on Mac OS X. MongoDB 2.2.3Mac OS X 10.8.2 1. Download MongoDB Get MongoDB from official website, extracts it : $ cd ~/Download $ tar xzf mongod

crxmai的专栏 717

锂电池主动均衡理解

锂电池主动均衡方案总结: 来自:http://wenku.baidu.com/link?url=EWiyACZ3aLPhcOjI4FZL3uQ9d0FD6dBhADQSVQiaSmRHHATTdSig1Wy39JY7-ijCzbAEYG1ymz6Lv5zhGdZaStQSHzFt6v3h3_tMrJudz9O 目前车厂采用被动均衡方案的公司:(来自网页) 目前采用主动均衡的...

weixin_34365417的博客 2909

PCB_Project.PrjPcb 4 Not in version control

Altium Designer中PCB项目出现"NOT in version control"错误的解决方法:1. 禁用不需要的版本控制集成(DXP→Preferences→Version Control);2. 清理项目缓存(Projects面板右键→Clean Project);3. 检查文件读写权限;4. 如无效可新建项目重新添加文件。如需使用SVN版本控制,需正确配置SVN客户端路径,创建或连接SVN仓库,并将项目文件提交至版本控制系统。注意新建SVN仓库必须使用空目录,建议使用

whm128的博客 1592

MongoDB 学习:安装与启动

操作系统为:ubuntu 16.04. 参考文章:How to Install MongoDB on Ubuntu 16.04 可能遇到的问题以及解决办法: (1)Permission denied 运行以下命令启动 mongodb sudo systemctl start mongodb 然后运行以下命令查询状态 sudo systemctl status mongod

Tuesday 1万+

2023年全国青少年信息素养大赛复赛真题(C++智能算法复赛真题:带解析)

2023年全国青少年信息素养大赛复赛真题(C++智能算法复赛真题:带解析)

王老师青少年编程 2114

CentOS7 yum安装mongodb

安装步骤 1.配置MongoDB的yum源 创建yum源文件: vim /etc/yum.repos.d/mongodb-org-3.4.repo 添加以下内容: [mongodb-org-3.4]   name=MongoDB Repository   baseurl=https://repo.mongodb.org/yum/redhat/$releasever/m

宋发元 4231

在 MATLAB/Simulink 中构建一个卫星间激光通信链路的完整仿真系统

摘要: 本文通过Simulink详细演示了卫星间激光通信系统的建模过程,重点分析其在10Gbps高速率、2000km距离下的性能。系统设计涵盖PAM-4调制、自由空间信道建模(路径损耗、指向误差、多普勒效应)、APD探测及链路预算计算,并给出典型场景下18.5dB SNR、1e-9误码率的仿真结果。针对激光通信的μrad级指向精度挑战,提出AI辅助跟踪、混合RF/激光等优化策略,为未来太空高速组网提供可扩展的仿真框架。所需工具箱包括Communications Toolbox和Aerospace Toolb

xiaoheshang_123的博客 381

QT实现警报应用程序

QT实现警报应用程序

希望我的博客,能帮上你解决学习中工作中所遇到的问题 2039

MongoDB——How To Install MongoDB In Ubuntu20.04 (如何在Ubuntu20.04的Linux操作系统上安装MongoDB5.0.7)

📖本文目录📖 如何在 Ubuntu 上安装MongoDB🔖 准备工作🔖 Ubuntu 20.04 中安装 MongoDB 📖 如何在 Ubuntu 上安装MongoDB 🔖 准备工作 安装包的准备 实验环境:Ubuntu 20.04 MongoDB 5.0.7 官方下载地址:MongoDB Community Download | MongoDB 这里准备好了 Ubuntu 18.04 与 Ubuntu 20.04 以及 centOS7.6的MongoDB 5.0.7 的安装包 链接:https:

Alascanfu的博客 564

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

centos7 yum安装MongoDB

原文博客地址http://xgs888.top/post/view?id=64 centos7 yum安装mongodb; 1:创建仓库 vi/etc/yum.repos.d/mongodb-org-3.4.repo 2:把下面的内容复制到文件中 保存退出 [mongodb-org-3.4] name=MongoDBRepository baseurl

xgs736214763的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

网络连接情况的调试思路:从实践中理解ICMP协议

网络连接问题在后台开发中最常见的问题之一。本文总结了定位网络连接问题的思路及常用工具 ping和traceroute(traceroute是Linux命令,在windows中是tracert),并从ICMP网络协议的角度来解释 ping和traceroute的实现原理。假如学有余力的读者,还可以看看扩展部分,一起来转一下牛角尖:“机器通不通”这个描述到底准不准确?

programmer_at的专栏 10万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Python中使用多个分隔符分隔字符串re.split

正则表达式基础,看这篇就够了 摘要 split多个分隔符 单一分隔符,使用str.split()即可 多个分隔符,复杂的分隔情况,使用re.split 单一分隔符,str.split()与 re.split()效果是一样的 多个单一 分隔符 时 ,”[]”与 “|”的 效果是一样的,但是 请注意 使用 “|”时某些字符 需要转义 多个 长短 不一 的的分隔符的分隔符时, 就应

programmer_at的专栏 4万+

Java线程池实现原理与源码解析(jdk1.8)

为什么需要线程池? 线程池能够对线程进行统一分配,调优和监控: - 降低资源消耗(线程无限制地创建,然后使用完毕后销毁) - 提高响应速度(无须创建线程) - 提高线程的可管理性 Java是如何实现和管理线程池的? 从JDK 5开始,把工作单元与执行机制分离开来,工作单元包括Runnable和Callable,而执行机制有Executor框架提供。 newScheduled...

programmer_at的专栏 3万+

Win10安装eclipse+SDK+ADT

从干燥的北方来到南方,笔记本竟然也会“水土不服”,主板神奇般地坏了,于是借着新笔记本是win10的机会,装了最新版的eclipse,搭建android开发环境。 可是,在GFW的保护下,ADT和SDK的下载也费了我不少功夫,所以特地备忘一下。 操作系统:win10 64bit 1.下载eclipse-inst-win64.exe 先运行该程序,它会提示你应该先装哪一

programmer_at的专栏 3万+

Thread.join()的真正含义

首先, Thread.join() 并没有将线程合并起来~ 任何疑惑都先从Java Doc开始, stackoverflow上有个极好的例子: 1. After the main thread creates and starts the t1 and t2 threads. There are 3 threads running in parallel: main, t1, t2

programmer_at的专栏 1万+

23种常见设计模式总结(类图,优缺点,不同设计模式之间的对比)

设计模式的几个重要原则 单一职责原则 开闭原则 依赖倒转原则 里氏代换原则 合成聚合复用原则:尽量使用组合/聚合代替继承 迪米特原则:降低耦合性 设计模式 类图 优点 缺点 ...

programmer_at的专栏 1万+

首次将本地代码上传至github

这个问题我遇到好几次了, 每次解决的方式都不一样, 有时解决地十分丑陋, 所有今天必须给自己规范化一下解决流程.前提github账号 本地也已经安装了git场景 本地尚且没有代码 本地已经有代码了, github上也没有代码, 尚未将代码上传至github 本地已有代码, github上也有代码, 两者没有冲突, 需要将本地代码上传至github上 本地已有代码, github上也有代码, 两者也

programmer_at的专栏 9534
上一篇: Linux快速启动应用程序
下一篇: 数的表示与运算
猪杂汤饭
博客等级 码龄12年 238粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值