解决Mongodb突然无法远程连接问题及如何在忘记密码的情况下远程备份
Posted 简一_hz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决Mongodb突然无法远程连接问题及如何在忘记密码的情况下远程备份相关的知识,希望对你有一定的参考价值。
今天服务器上跑了几年的项目突然报错:
MongoError: failed to connect to server [xxxx] on first connect [MongoError: connection 0 to xxxxx timed out]
因为我的数据库是跑在另一个服务器上的,所以这台服务器需要远程连接mongodb。
下面是我解决这个无法连接问题的整个排查和处理过程。
1. 首先查看mongo数据库是否有运行着
ps -ef | grep 'mongod*'
用上述命令查询发现有mongo进程,说明有运行着;
2. 查看数据库服务器 本地能否打开mongo shell,发现
一看shutdown了,没法正常打开shell;
3. 先关掉服务删除mongod.lock文件再重启一把试试,OK
4. 工程服务器远程连接数据库
mongo xxx.xxx.xx.x(数据库服务器ip)
结果返回
019-04-18T15:33:11.612+0800 W NETWORK [thread1] Failed to connect to xxx.xxx.xx.x:27017 after 5000ms milliseconds, giving up.
2019-04-18T15:33:11.613+0800 E QUERY [thread1] Error: couldn't connect to server xxx.xxx.xx.x:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed
5. ping数据库服务器ip,发现能ping通;说明上面无法连接成功是因为端口27017问题;
用telnet验证了猜测,确实无法连接到这个端口;
telnet xxx.xxx.xx.x 27017
6. 查看数据库服务器防火墙是否打开
service iptables status
7. 关闭防火墙
service iptables stop
再测试一把telnet,发现可以了!
8. 为了防止数据库丢失,还是备份一下吧
mongodb的备份有两种方式:
1.直接拷贝数据目录下的一切文件
2.使用mongodump方式
-h:
MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:
需要备份的数据库实例,例如:test
-o:
备份的数据存放位置,例如:c:\\data\\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
以上是关于解决Mongodb突然无法远程连接问题及如何在忘记密码的情况下远程备份的主要内容,如果未能解决你的问题,请参考以下文章