大家好,又见面了,我是你们的朋友全栈君。
MongoDB启动失败原因
今天某个项目突然登录不了,查看服务器发现是后端出现异常,停掉后端重新启动的时候失败,显示是数据库连接失败,然后接着查看数据库,发现数据库连接失败,原因是数据库挂掉了。
数据库用的是MongoDB,我也只是听过还没有使用过,简单的在网上查询了一下MongoDB的启动命令就直接开始启动了,结果发现启动失败。
尝试了好一些方法后才终于成功启动:
- 尝试提升MongoDB所在文件夹的权限,提升MongoDB数据存放的文件夹的权限。
- 查看是否还有MongoDB的进程存在,占用了端口
- 查询清楚MongoDB的数据存放位置,网上搜到的启动命令一般是这个:
./mongod --dbpath /data/db
,如果实际的数据不是存放在这里,就算启动成功也是找不到原来的数据的。 - 使用修复命令自动修复MongoDB:
sudo /usr/local/mongodb/bin/mongod --repair
MongoDB的启动:
如果是使用./mongod --dbpath /data/db
启动的话,启动成功后命令窗口的就会卡住(如图一,图二),这个情况其实是已经成功启动的了,但是如果我们退出这个窗口或者把这个窗口重新进入到可以输入命令的模式,就会直接停掉这个MongoDB的线程。
如果在启动命令后面加了fork,则会以守护进程模式启动MongoDB,就算关掉窗口也不会停止MongoDB,
命令:./mongod --dbpath /data/db --fork
,这个命令启动的话会省略其他信息,直接显示启动的信息。
MongoDB完整的启动命令:
代码语言:javascript复制sudo ./mongod --dbpath=/home/mongodb/data --logpath=/home/mongodb/logs --logappend --bind_ip=0.0.0.0 --port=27017 --fork
指定数据存放的位置:
代码语言:javascript复制--dbpath=/home/mongodb/data
指定log文件存放位置:
代码语言:javascript复制--logpath=/home/mongodb/logs
日志以天为单位自动切割:
代码语言:javascript复制--logappend
绑定可以访问MongoDB的IP地址,如果没有这个则不允许其他电脑访问,如果是0.0.0.0则所有电脑都可以访问:
代码语言:javascript复制--bind_ip=0.0.0.0
绑定启动端口:
代码语言:javascript复制--port=27017
以守护进程启动:
代码语言:javascript复制--fork
图一:
图二:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/226931.html原文链接:https://javaforall.cn