【MongoDB】mongodb安装及启动踩坑点

2024-01-25 03:20
文章标签 安装 启动 mongodb 坑点

本文主要是介绍【MongoDB】mongodb安装及启动踩坑点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

mongodb的安装,基本上参考文章[1]。

但是在过程中,有一些踩坑点。

1,高版本mongodb不自带mongo脚本

在文章1中,作者在解压后,直接使用了mongo脚本,而我下载的mongodb版本要更高,在解压后,bin目录中没有mongo脚本,mongo脚本是mongodb的命令行客户端,据说,这个从6.0版本开始是要自己安装的。

2,mongodb缺少依赖

在使用mongod启动server时,提示缺少依赖。通过ldd mongod命令,发现缺少依赖如下:

libnetsnmpmibs.so.31
libnetsnmpagent.so.31

尝试过使用yum whatprovides XXX来找到包含该依赖的组件并安装,发现都是一些net-snmp-agent-XXX。yum install后并没有解决问题。

后来从文章[2]那里,找到了解决办法,安装net-snmp。

yum install net-snmp

安装后,就不会有缺少依赖的报错了。

其实mongodb解压后,里面包括一个snmp的包,应该是需要snmp的。snmp是一种网络协议[3],而net-snmp是实现了snmp的组件[4]。总之缺少了net-snmp,mongodb是无法工作的。

3,依然无法正常启动,可能是data、logs目录出现了问题

到此时,再次启动Mongodb,依然无法正常启动。奇怪的是,mongod脚本启动server没有提示信息就直接结束了。当使用mongod关闭server时,提示似乎没有server在运行。

mongod关闭server

mongod --shutdown -f /etc/mongodb.conf

这就有点奇怪了。我找到这篇文章[5],杀死进程,还是会有新的27017端口进程出现,按照文章[5]所述,应该是守护进程不断重启导致的,在/etc/mongodb.conf中,将fork设置为false,这样就能够正常杀死进程了。但是发现还是无法正常启动。

此时根据文章[5]给我的启示,可能是data logs出现了问题。查看了下/etc/profile和/etc/mongodb.conf中data logs路径的配置都没有问题。而data目录下存在了很多文件,我此时还没有正常启动,哪来的data文件呢,因此我猜测可能是data目录出现了问题,因此删除了data和logs目录(logs里的Log是追加的,出问题的可能不大,但是保险起见,一起删除了)。

删除后,重新mkdir和touch来创建data和logs,再次启动,启动成功。

[root@localhost bin]# mongo --host 127.0.0.1 --port 27017
MongoDB shell version v5.0.24
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1be50feb-f2bb-4986-8153-ecf03190cd1d") }
MongoDB server version: 5.0.24
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, seehttps://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forumshttps://community.mongodb.com
---
The server generated these startup warnings when booting: 2024-01-24T01:40:16.103-08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted2024-01-24T01:40:16.103-08:00: You are running this process as the root user, which is not recommended2024-01-24T01:40:16.104-08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'2024-01-24T01:40:16.104-08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'2024-01-24T01:40:16.104-08:00: Soft rlimits for open file descriptors too low2024-01-24T01:40:16.104-08:00:         currentValue: 10242024-01-24T01:40:16.104-08:00:         recommendedMinimum: 64000
---
MongoDB Enterprise > 

但是此时不要忘记,最好把守护进程打开,使用mongod shutdown将server关闭后,将配置文件里/etc/mongodb.conf里的fork改为true。

这时再次关闭server,依然会报错,客户端依然能够连上server,可能是因为fork为true无法关闭。

参考文章:
[1],Linux下MongoDB的安装与配置
[2],centos7 安装mongo ./mongod: error while loading shared libraries: libnetsnmpmibs.so.31:
[3],什么是SNMP?
[4],Snmp学习总结(六)——NET-SNMP 简介与使用
[5],mongodb启动异常:about to fork child process, waiting until server is ready for connection

这篇关于【MongoDB】mongodb安装及启动踩坑点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/641928

相关文章

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

springboot启动流程过程

《springboot启动流程过程》SpringBoot简化了Spring框架的使用,通过创建`SpringApplication`对象,判断应用类型并设置初始化器和监听器,在`run`方法中,读取配... 目录springboot启动流程springboot程序启动入口1.创建SpringApplicat

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑