【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

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地