记一次Centos7上无法连接到MongoDB的处理步骤

16 篇文章 0 订阅
5 篇文章 0 订阅

1. 引入

笔者参考2给出的步骤,在CentOS7上安装了mongodb-6.0。安装后,可以用mongosh命令连上DB shell,但是过了三四天后,却无法用这条命令再次连接上mongo shell了。
使用重启大法(sudo systemctl restart mongod),依然是没法连接。
下面记录处理和修复这个问题的步骤。

2. 处理过程

  1. 用mongod命令查看系统状态与报错
$ mongod

{"t":{"$date":"2023-10-05T23:29:43.410+08:00"},"s":"I",  "c":"CONTROL",  "id":123,   "ctx":"initandlisten","msg":"Operating System","attr":{"os":{"name":"CentOS Linux release 7.5 (Core) ","version":"Kernel 3.10.0"}}}
{"t":{"$date":"2023-10-05T23:29:43.411+08:00"},"s":"E",  "c":"NETWORK",  "id":124,   "ctx":"initandlisten","msg":"Failed to unlink socket file","attr":{"path":"/tmp/mongodb-27017.sock","error":"Operation not permitted"}}
{"t":{"$date":"2023-10-05T23:29:43.411+08:00"},"s":"F",  "c":"ASSERT",   "id":125,   "ctx":"initandlisten","msg":"Fatal assertion","attr":{"msgid":40486,"file":"src/mongo/transport/transport_layer_asio.cpp","line":1130}}
{"t":{"$date":"2023-10-05T23:29:43.411+08:00"},"s":"F",  "c":"ASSERT",   "id":126,   "ctx":"initandlisten","msg":"\n\n***aborting after fassert() failure\n\n"}

可以看到,问题主要出在“Failed to unlink socket”,报错中也给出了path:“/tmp/mongodb-27017.sock”

这里,也可以直接查看mongodb的log(sudo tail /var/log/mongodb/mongod.log),能看到相同的报错。

  1. 删除这个.sock文件
$ sudo rm -rf /tmp/mongodb-27017.sock

在linux下,同一台服务器上,多个进程之间的通信,就使用一个.sock文件来进行。比如php与mysql通信、可以采用一个socket文件来进行。

  1. 重启mongo
$ sudo systemctl restart mongod
  1. 再次查看log,报错消失
$ sudo tail /var/log/mongodb/mongod.log
  1. 使用命令连接mongo shell
$ mongosh

这样就能使用"show dbs"之类的命令来管理mongodb了。

3. 总结

当mongodb出现问题时,可以通过mongodb的log(sudo tail /var/log/mongodb/mongod.log),或者看命令mongod的输出,来定位问题。

4. 参考

  1. https://stackoverflow.com/questions/29813648/failed-to-unlink-socket-file-error-in-mongodb-3-0
  2. https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-centos-7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值