因此,我目前正在尝试为我的 centos 机器本地设置运行和托管的 mongodb。但是当我尝试连接时,我得到了这个:
#mongo
MongoDB shell version v3.4.24
connecting to: mongodb://127.0.0.1:27017
2021-04-20T22:06:51.585+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2021-04-20T22:06:51.585+0000 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:240:13
@(connect):1:6
exception: connect failed
我现在已经读了很多关于它的内容。
- 用户 mongod 是 /var/lib/monogodb 的所有者
- 文件 /var/lib/mongodb/mongod.lock 不存在
- 重新启动服务器导致了此问题。
我认为(个人)这与 iptables 有关。当我启动 mongodb 服务时,我得到了以下信息:
# service mongod status
Redirecting to /bin/systemctl status mongod.service
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2021-04-20 22:05:26 UTC; 27s ago
Docs: https://docs.mongodb.org/manual
Process: 1772 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=51)
Process: 1770 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 1768 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 1766 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
Apr 20 22:05:25 Server-Elf systemd[1]: Starting MongoDB Database Server...
Apr 20 22:05:25 Server-Elf mongod[1772]: about to fork child process, waiting until server is ready for connections.
Apr 20 22:05:25 Server-Elf mongod[1772]: forked process: 1774
Apr 20 22:05:26 Server-Elf mongod[1772]: ERROR: child process failed, exited with error number 51
Apr 20 22:05:26 Server-Elf systemd[1]: mongod.service: Control process exited, code=exited status=51
Apr 20 22:05:26 Server-Elf systemd[1]: mongod.service: Failed with result 'exit-code'.
Apr 20 22:05:26 Server-Elf systemd[1]: Failed to start MongoDB Database Server.
Iptables 设置:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
/etc/mongod.conf 显示:net:bindIp:127.0.0.1
即使停止 iptables 后错误仍然继续。我真是不知所措。非常感谢您的帮助。提前谢谢您
答案1
很烦人,但唯一的解决办法是:恢复整个服务器的旧备份。
虽然这显然不是理想的,但我找不到重新开放对 127.0.0.1:27017 的访问的方法
一些数据丢失了,不过还好,我已经备份了大部分数据 - 现在只需重新设置即可。
谢谢大家的帮助/建议。