MongoDB 常见问题汇总及解决方法(持续更新ing)

一、启动mongdb时报错

根据你的 mongodb.conf 配置文件里的内容进行排查,如

(1)Unrecognized option: storage try ‘mongod --help’ for more information

解决办法:在storage:下面的两行最前面输入两个空格。

(2)error:child process failed, exited with error number 1

解决办法:创建 /var/run/mongodb/mongod.pid文件

(3)error:child process failed, exited with error number 48

创建 /var/log/mongodb/mongod.log

(4)error:child process failed, exited with error number 100

创建:/var/lib/mongo

二、重启服务器时 mongodb/mongod.pid 不见了

每次开机后启动 mongodb 时报 error:child process failed, exited with error number 1 错误,查看发现 /var/run/目录下的 mongodb/mongod.pid文件 不见了或者被自行删除了。

解决办法是:自行写个开机创建 mongodb/mongod.pid文件的脚本。

1.创建脚本为 mgopid.sh

vim mgopid.sh

#输入如下信息
#! /bin/bash
d=`mkdir -p /var/run/mongodb`
e=`touch /var/run/mongodb/mongod.pid`

2.加入到 /etc/rc.local 中

vim /etc/rc.local

#输入下面信息
#creat a mongod.pid
/root/mgopid.sh

chmod +x /etc/rc.local #添加执行权限

关于 /etc/rc.local

说明:
1. 此文件是存放开机自启动程序命令的文件
2. /etc/rc.local 是 /etc/rc.d/rc.local 文件的软链接。
3. 针对CentOS 7 : 默认是没有执行权限,需要加上执行权限 chmod +x /etc/rc.local

        在Linux系统中 /etc/init.d是个目录,这个目录里面用于放置shell脚本,注意是脚本,这些脚本是启动脚本,用于Linux中服务的启动、停止、重启,比如各种Linux中的服务都会有启动脚本放在这里,像是ssh服务的文件sshd就在这里面。

        而 /etc/rc.d/rc.local 是一个文件,这个文件用于用户自定义开机启动程序,也就是说用户可以把需要开机启动的命令、运行可执行脚本的命令写入这个文件,这样就可以在系统启动时自动执行这个命令,比如把一个shell脚本的完整路径写入这个文件,那这个shell脚本就会在开机后自动执行。

三、启动报错ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=14)

1.esystemctl start mongod.servic 启动后,查看状态时报错:

2.缘由是文件读取权限不足,执行如下操做:

 (1)查看mongodb用户名

cat /etc/passwd

(2)确保以下目录文件权限为mongodb,如果不是则添加权限:

chown mongodb:mongodb /tmp/mongodb-27017.sock

mongod.conf 配置文件下所有目录 如 
storage:
  dbPath: xxxx 路劲下的 目录也添加权限即可

如
chown -R mongodb:mongodb xxx

 (3)重新启动即可。

esystemctl restart mongod.servic
esystemctl status mongod.servic  

四、mongod: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory 

使用配置文件启动 mongodb时还有直接执行 mongod时报如下错误,意思是说找不到共享库文件 libcrypto.so.10:

前提:我安装mongodb前已安装下面依赖:

yum -y install libcurl openssl

解决办法:

1.首先通过命令ldd /usr/local/mongodb/bin/mongod 来查看./mongod还需要哪些依赖:

2.通过yum whatprovides libcrypto.so.10命令查看哪个包下有共享库文件

我这边显示没有匹配的搜索结果。你们如果查到有结果的话则 yum 安装相应的包

3.MongoDB 4.0及以上版本需要依赖openssl10相关资源,必须先在Linux中安装openssl10
        需要下载一个MongoDB的rpm包,因为MongoDB 安装时需要依赖openssl10进行安全访问,类似http和https之间,做安全连接

[root@Euler ~]# wget https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm

[root@Euler ~]# rpm -ivh compat-openssl10-1.0.2o-3.el8.x86_64.rpm

4.再次查看依赖已经都有了

[root@Euler ~]# ldd /usr/local/mongodb/bin/mongod

5.再次启动mongodb 则可成功

[root@Euler ~]# mongod --config /usr/local/mongodb/etc/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 7739
child process started successfully, parent exiting

五、Unrecognized option: storage.journal  try 'mongod --help' for more information

使用配置文件启动 mongodb时报如下错误:

意思是我们配置的config文件出了问题。
说明:MongoDB采用的是YAML格式,所以我们只需要稍微改改就好。

在storage:下面的两行最前面输入两个空格。
我刚开始这两行都是没有空格的,实际应该在下面两行最前面输入两个空格。

比如字母 d 对齐上面的 字母 o:

重启启动mongod即可成功!

六、Windows 中 mongo 无论是用连接工具还是命令行客户端连接,都不能正常连接

可以从下面看到,我前面还能正常访问,后面突然又不行了,用 Robo 3T 工具连接也不成功:

C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe
MongoDB shell version v4.2.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("55af8b5e-a2a6-4ebe-8893-fcc8931e7e82") }
MongoDB server version: 4.2.2
> show tables
Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus
> show collections
Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus
> exit
bye

C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe
MongoDB shell version v4.2.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2023-02-14T15:49:48.608+0800 E  QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: ͨ��ÿ���׽��ֵ�ַ(Э��/�����ַ/�˿�)ֻ����ʹ��һ�Ρ� :
connect@src/mongo/shell/mongo.js:341:17
@(connect):2:6
2023-02-14T15:49:48.611+0800 F  -        [main] exception: connect failed
2023-02-14T15:49:48.612+0800 E  -        [main] exiting with code 1

解决办法:

# 查看连接数
C:\Program Files\MongoDB\Server\4.2\bin>netsh int ipv4 show dynamicportrange tcp

协议 tcp 动态端口范围
---------------------------------
启动端口        : 49152
端口数          : 16384

# 设置最大连接
C:\Program Files\MongoDB\Server\4.2\bin>netsh int ipv4 set dynamicport tcp start=2000 num=63535
确定。

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: SpringBoot常见问题包括项目无法启动和启动类位置错误。如果使用的是SpringBoot 2.0.0.M3版本和SpringCloud Finchley.M2版本,按照视频可以正常启动。如果是高版本无法启动,需要在pom.xml中添加依赖org.springframework.boot:spring-boot-starter-web。\[1\] SpringBoot是Spring提供的一个快速开发工具,可以更方便、更快速地开发Spring+SpringMVC应用,简化了配置,整合了一系列解决方案,包括redis、mongodb、es等,可以开箱即用。\[2\] SpringBoot启动Tomcat是通过启动类来实现的,需要将启动类放在最上层,即包含所有子包。Spring Boot会自动加载启动类所在包下及其子包下的所有组件。\[3\] #### 引用[.reference_title] - *1* [Spring Boot 错误总结(累计30个常见错误)](https://blog.csdn.net/qq_32447301/article/details/77161272?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168932794216800192238621%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168932794216800192238621&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-77161272-null-null.article_score_rank&utm_term=springboot%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)[target="_blank"] [.reference_item] - *2* [SpringBoot中几个常见的几个问题](https://blog.csdn.net/sxl123sxl/article/details/125901983?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168932794216800192238621%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168932794216800192238621&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-4-125901983-null-null.article_score_rank&utm_term=springboot%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)[target="_blank"] [.reference_item] - *3* [SpringBoot常见问题汇总](https://blog.csdn.net/u014622092/article/details/129660024?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168932794216800192238621%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168932794216800192238621&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-129660024-null-null.article_score_rank&utm_term=springboot%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)[target="_blank"] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stars.Sky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值