mongo error: connect failed
前言
今天遇到一件很头疼的事
mongo在服务器上运行的好好, 然后手贱用了sudo service mongod restart重启一下
更贱的是, 还没有重启完, 又使用了Ctrl + c, 导致再次启动mongo显示connect failed
查看日志
输入 mongod
显示如下:
错误原因
mongod没有成功启动
提示知道不到数据目录不存在
解决办法
第一种
创建/data/db文件夹
mkdir /data/db
第二种
指定已存在的数据目录
$ mongod --dbpath /data/db
此时输入mongo就发现已经可以成功进入了
指定配置文件后台启动mongo
指定配置文件启动
如果不指定再次重启mongo, 还会出现同样的错误
$ mongod --config /etc/mongod.conf
在配置文件中指定, 数据目录即可:
dbPath: /amazon/db/mongodb
后台启动
借助nohup即可
$ nohup sudo mongod --config /etc/mongod.conf &
其他原因及解决
一般造成这种连接不上的都是因为没有正常启动或者关闭mongo造成的
1. 尝试删除数据目录的mongod.lock文件, 重启
2. 尝试使用mongod --repair修复
3. 查看数据目录的权限, 如果不是mongodb:mongodb使用一下命令修改
sudo chown -R mongodb:mongodb /mongodb_data/
补充
以上是本人遇见过的, 如果还不行, 解决思路如下:
1. 查看日志
2. 找到错误原因
3. 根据错误解决问题