记录第一次部署服务器mongodb连接问题

在建立个人网站时,作者遇到MongoDB远程连接超时的问题。经过排查,问题出在MongoDB的bindIp配置、端口未开放以及防火墙限制。通过修改mongod.conf文件,开放27017端口,以及调整防火墙设置,最终成功解决了远程连接问题。对于前端开发者来说,这种系统层面的问题排查颇具挑战性。
摘要由CSDN通过智能技术生成

最近在写一个个人的网站,前端差不多了,所以这两天在搞数据库

先按官网的流程走完了,Linux主机上可以进mongo了:
在这里插入图片描述

然后心里想了一句这么顺利的吗,就在服务端用mongoose打算远程连一下数据库,看能不能连上。

本以为应该是秒连的,没想到过了一会给了个超时的错误:

在这里插入图片描述

第一反应是会不会是mongoose的配置有问题,因为主机上顺利地一批啊,就去官网看了下,加了一个配置项 socketTimeoutMS:6000000;

其实心里是觉得没什么D用的,果然,不靠谱。

然后查了一下,看有说法是需要把 mongod.conf 配置文件中的 bindIp 改成0.0.0.0:

bindIp表示的是监听的ip地址段,默认是127.0.0.1,也就是localhost,不能被外界访问到,注释掉这句代码之后默认就是监听0.0.0.0也就是全部网段,由于是在局域网环境,可以这样简单设置保存(如果设置为某个具体的ip,则只有该ip能访问)
找到mongod.conf 文件,修改bindIp字段:
在这里插入图片描述

重启了服务后还是不行。

后来突然一想,超时大概率是端口访问不到没开放,于是远程telnet了一下27017端口,发现连接失败了,我又跑了一下8000端口(我页面是放在这个端口的),8000端口没问题

那问题根源应该就是这个了,所以一步步开始排查:

先是在安全组里开放27017端口,再连 —— 还是不行;
lsof了一下主机的27017端口,是开放着的,那就只剩下防火墙了
firewall-cmd --query-port=27017/tcp 查看了一下,返现返回的是no,那就是被防火墙墙了,需要开个口子
firewall-cmd --permanent --add-port=27017/tcp ,进行27017端口的添加,返回了success
重启一下服务器,firewall-cmd --query-port=27017/tcp 查看一下,返回yes,开启成功
满怀激动的心情,再远程连了一下,OK,收工。

顺带一提,如果过程重碰到了重启mongod失败的错误,应该就是目录权限的问题:
在这里插入图片描述

跑一下这个命令就好了(原因暂时还未了解):

sudo chown mongod:mongod /tmp/mongodb-27017.sock
最后写些感想,作为一名前端,这方面一开始碰到问题的时候真的就无从下手,头皮发麻。这不像前端,可以有html页面效果反馈,也不能打开控制台打断点看看哪里出了问题

你面对的,就只有一个黑漆漆的linux命令面板,这就对排查问题的能力有了要求。

喜欢看推理小说,这就和福尔摩斯说的一样:排除了所有不可能,剩下的就是真相。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值