Ubuntu 17.10下Mongo Shell无法连接MongoDB服务器求助
嘿,我碰到过好多次这个“连接被拒绝”的问题了,大多是MongoDB服务没正常跑起来或者小配置出了问题,咱们一步步排查解决:
先确认MongoDB服务是否在运行
打开终端输入这条命令查看状态:sudo systemctl status mongod
如果输出里显示inactive (dead),说明服务没启动,先启动它:sudo systemctl start mongod
要是想让它开机自动启动,再加一条:sudo systemctl enable mongod检查端口27017是否被占用
有时候其他进程会抢占MongoDB的默认端口,用这条命令看看谁在占着:sudo lsof -i :27017
或者另一条命令:sudo netstat -tulpn | grep 27017
如果查到有其他进程,要么杀掉那个进程(用kill -9 <进程ID>),要么修改MongoDB配置文件换个端口。检查MongoDB配置文件
默认配置文件在/etc/mongod.conf,用编辑器打开它:sudo nano /etc/mongod.conf
找到net部分的bindIp,确保它的值是127.0.0.1(允许本地连接),如果改成了其他IP,本地连接就会被拒绝。修改后保存退出,然后重启服务:sudo systemctl restart mongod检查数据目录权限
MongoDB的数据默认存在/var/lib/mongodb,如果这个目录的权限不对,服务也没法正常启动。查看权限:ls -ld /var/lib/mongodb
输出应该显示所属用户和组都是mongodb,如果不是,用这条命令修正:sudo chown -R mongodb:mongodb /var/lib/mongodb
之后重启服务试试。修复MongoDB数据(如果服务启动失败)
要是服务启动不了,可能是数据文件损坏,试试修复:sudo mongod --repair
修复完成后再启动服务。
做完这些步骤,再输入mongo试试,应该就能正常连接了。如果还是不行,查看MongoDB的日志找更详细的错误信息:sudo journalctl -u mongod
内容的提问来源于stack exchange,提问作者Shubham Gupta

