当前位置:   article > 正文

MongoDB 常见问题汇总及解决方法(持续更新ing)_unrecognized option: storage.journal.enabled

unrecognized option: storage.journal.enabled

一、启动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

  1. vim mgopid.sh
  2. #输入如下信息
  3. #! /bin/bash
  4. d=`mkdir -p /var/run/mongodb`
  5. e=`touch /var/run/mongodb/mongod.pid`

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

  1. vim /etc/rc.local
  2. #输入下面信息
  3. #creat a mongod.pid
  4. /root/mgopid.sh
  5. 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,如果不是则添加权限:

  1. chown mongodb:mongodb /tmp/mongodb-27017.sock
  2. mongod.conf 配置文件下所有目录 如
  3. storage:
  4. dbPath: xxxx 路劲下的 目录也添加权限即可
  5. chown -R mongodb:mongodb xxx

 (3)重新启动即可。

  1. esystemctl restart mongod.servic
  2. 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之间,做安全连接

  1. [root@Euler ~]# wget https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm
  2. [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 则可成功

  1. [root@Euler ~]# mongod --config /usr/local/mongodb/etc/mongod.conf
  2. about to fork child process, waiting until server is ready for connections.
  3. forked process: 7739
  4. 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 工具连接也不成功:

  1. C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe
  2. MongoDB shell version v4.2.2
  3. connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
  4. Implicit session: session { "id" : UUID("55af8b5e-a2a6-4ebe-8893-fcc8931e7e82") }
  5. MongoDB server version: 4.2.2
  6. > show tables
  7. Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus
  8. > show collections
  9. Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus
  10. > exit
  11. bye
  12. C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe
  13. MongoDB shell version v4.2.2
  14. connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
  15. 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 :: ͨ��ÿ���׽��ֵ�ַ(Э��/�����ַ/�˿�)ֻ����ʹ��һ�Ρ� :
  16. connect@src/mongo/shell/mongo.js:341:17
  17. @(connect):2:6
  18. 2023-02-14T15:49:48.611+0800 F - [main] exception: connect failed
  19. 2023-02-14T15:49:48.612+0800 E - [main] exiting with code 1

解决办法:

  1. # 查看连接数
  2. C:\Program Files\MongoDB\Server\4.2\bin>netsh int ipv4 show dynamicportrange tcp
  3. 协议 tcp 动态端口范围
  4. ---------------------------------
  5. 启动端口 : 49152
  6. 端口数 : 16384
  7. # 设置最大连接
  8. C:\Program Files\MongoDB\Server\4.2\bin>netsh int ipv4 set dynamicport tcp start=2000 num=63535
  9. 确定。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号