前言:
打开一个终端,想进mongodb看看,mongo连接时候给我报了连接失败了,我是在安装mongodb的终端上,竟然有人可以阻止我连接自己的mongodb,于是一番排查小记一下过程和结果:
报错内容:
2019-11-09T10:56:56.226+0800 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2019-11-09T10:56:56.227+0800 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问题排查思路:
内容很清晰名了就是连接失败,简短的5行信息,没太找到有用的价值,至于src/mongo/shell/mongo.js我觉得现在还不是查看的时候;首先我先检查下本地是否有mongodb服务,都说连接不上了,先看看服务还在不在,查看服务后好吧果然服务不在了,好吧,这个问题找到原因了,直接一个:
sudo server mongod start顺手打了出来了启动命令,然后悲剧了,新的报错来了:
2019-11-09T10:58:15.313+0800 I CONTROL [initandlisten] MongoDB starting : pid=2357 port=27017 dbpath=/data/db 64-bit host=
2019-11-09T10:58:15.314+0800 I CONTROL [initandlisten] db version v3.4.18
2019-11-09T10:58:15.314+0800 I CONTROL [initandlisten] git version: 4410706bef6463369ea2f42399e9843903b31923
2019-11-09T10:58:15.314+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2s 28 May 2019
2019-11-09T10:58:15.314+0800 I CONTROL [initandlisten] allocator: system
2019-11-09T10:58:15.314+0800 I CONTROL [initandlisten] modules: none
2019-11-09T10:58:15.314+0800 I CONTROL [initandlisten] build environment:
2019-11-09T10:58:15.314+0800 I CONTROL [initandlisten] distarch: x86_64
2019-11-09T10:58:15.314+0800 I CONTROL [initandlisten] target_arch: x86_64
2019-11-09T10:58:15.314+0800 I CONTROL [initandlisten] options: {}
2019-11-09T10:58:15.316+0800 I STORAGE [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2019-11-09T10:58:15.316+0800 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2019-11-09T10:58:15.316+0800 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2019-11-09T10:58:15.317+0800 I CONTROL [initandlisten] now exiting
2019-11-09T10:58:15.317+0800 I CONTROL [initandlisten] shutting down with code:100
排查关键信息: 29 Data directory /data/db not found.说是数据库没找到,这时候还请保持冷静不建议立马按照其他人思路马上创建/data/db目录,还需要接着排查,有人会疑问问什么接着排查不是很清晰了吗?为什么需要继续排查,然后反问一下既然不是第一次登录,这台机器上mongo数据库中历史数据是否还需要?为什么之前使用时候没有创建/data/db?如果不需要或者就是忘了创建或者没登录过,根据需要创建后启动即可;如果需要历史数据,也不明白之前为什么没有创建请继续排查;安全第一;
总结下继续排查的原因,第一历史数据,第二机器规划原因(任何目录下都可以存储,但是企业数据库一般都会进行规划,否则后期维护挂载新的硬盘会很忧伤)
1、先查看是否确实不存在
ls /data/db2、尝试查看安装mongodb的配置文件,看配置文件如何配置的;
原因:就算你马上创建/data/db文件夹启动成功后,这时候是新配置连接上去你的历史数据大概率会找不到;
由于我不记得配置文件放在了哪里,先进行配置文件的模糊查找:
find / -name *mongod.conf根据找到的结果打开配置文件查看文件中db-path配置项,那下边肯定是你数据库存储位置,
所以不必瞎忙创建一个data/db,也许之前出于内存规划考虑就没存在系统data/db目录下;
排查结束,使用配置文件再次启动就可以解决以上所有问题;
mongod --config /usr/local/etc/mongod.conf
#后边路径修改成自己的配置文件即可;以上不排除有人误删/data/db,配置文件中写的就是这个路径那你大可以创建然后chmod授权后使用配置文件启动;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3152744/ ,如需转载,请注明出处,否则将追究法律责任。