mongodb启动成功连不上_mongodb启动不了解决方法
遇到MongoDB突然无法启动,第一反应是删除mongod.lock。这个文件在MongoDB的数据库目录下,默认是/data/db。这是最常见的问题了,产生原因是MongoDB没有正常结束(比如被kill -9杀掉或是其他意外情况导致中断)。
还一些其他情况会导致MongoDB无法启动。本文讨论的无法启动,是指:使用/etc/init.d/mongodb start或是sudo service mongdb start,提示mongodb start/running,但查看status仍然是stop/waiting。
service SERVERNAME status有可能误报,先确认MongoDB的实际状态。主要是ps axu|grep mongod查看是否有相关进程,打开links或是直接用浏览器访问127.0.0.1:28017,看不到MongoDB的信息说明没有启动。
然后执行:
$ sudo mongod –repair –config /etc/mongodb.conf
$ sudo mongod –config /etc/mongodb.conf
第一条命令是修复操作,第二条命令是手动指定MongoDB的配置文件,在终端中直接运行,这样输出错误时比较直观,不用去翻日志。如果能顺利运行mongod,说明配置文件和数据库都没有问题,是/usr/bin/mongodb权限不够,请参考本文结尾setcap方法。
如果不能运行,可以看到报错信息,分三种情况:配置文件错误,数据目录设置错误,/usr/bin/mongod文件错误。
配置文件错误比较明显,参数错误会明确提示error command line: unknown option xxx。第二条命令中明确指定使用的配置文件,也容易排错。所以除了之前配MongoDB主从修改配置文件弄坏过一次,很少遇到配置文件的问题。
其次是数据目录,主要是权限问题,可能的报错是:
Thu 22 11 10:03:30 [initandlisten] warning couldn’t write to / rename file /srv/mongodb/journal/prealloc.0
Thu 22 11 10:03:30 [initandlisten] couldn’t open /srv/mongodb/duoshuo.ns errno:1 Operation not permitted
Thu 22 11 10:03:30 [initandlisten] error couldn’t open file /srv/mongodb/duoshuo.ns terminating
数据目录的owner应该是mongodb:mongodb。
$ sudo chown mongodb:mongodb mongodb
最后一种情况是/usr/bin/mongod的问题。它的报错和目录没有读写权限一样,但即使你把MongoDB的数据库目录设置成777,一样会有问题。因为mongod是以O_NOATIME标志来访问文件系统的,mongodb没有这个权限,用setcap设置:
# setcap cap_fowner+ep /usr/bin/mongod
如果这样都不行…备份数据库然后apt-get purge 卸载重装吧。
mongodb启动成功连不上_mongodb启动不了解决方法相关推荐
- mongodb启动成功连不上_mongoDB启动服务提示已存在连接的问题
mongoDB启动服务提示已存在连接的问题 1. 在我用 F:\mongodb\binmongod --dbpath f:\mongodb\data --logpath f:\mongodb\logs ...
- eclipse找不到java方法,Linux启动eclipse报错找不到java环境解决方法
在Linux mint下,前几天还用得很好的的eclipse,今天开机不知为什么这样. Eclipse 3.6 在 linux mint 12 可以在终端顺利启动Eclipse,但是鼠标双击,或者用起 ...
- 启动Jupyter Notebook时出现Kernel error错误的解决方法
启动Jupyter Notebook时出现Kernel error错误的解决方法 方法如下: 1.打开Anaconda Prompt,然后输入jupyter kernelspec list,查看一下 ...
- pe下找不到ssd硬盘_快启动PE中没有识别到固态硬盘的解决方法
快启动PE中没有识别到固态硬盘怎么办?有人遇到电脑系统坏了卡了的情况都会想重装系统,但是进入快启动PE中准备分区时,却没有识别到固态硬盘,让人很是郁闷,所以今天快启动小编为大家分享快启动PE中没有识别 ...
- windows中运行qt5构建的程序提示 无法启动此程序,因为计算机中丢失qt5Cored.dll 解决方法
如果在windows中运行qt5构建的程序提示:无法启动此程序,因为计算机中丢失qt5Cored.dll 解决方法如下 1.用release构建项目 2.把缺少的dll文件,从C:\Qt\Qt5.0. ...
- Qt5 提示:无法启动此程序,计算机丢失Qt5Widgetsd.dll的解决方法
Qt5 提示:无法启动此程序,计算机丢失Qt5Widgetsd.dll的解决方法 参考文章: (1)Qt5 提示:无法启动此程序,计算机丢失Qt5Widgetsd.dll的解决方法 (2)https: ...
- 安装centos后 启动mysqld显示mysqld: 未被识别的服务 解决方法
安装centos后 启动mysqld显示mysqld: 未被识别的服务 解决方法 参考文章: (1)安装centos后 启动mysqld显示mysqld: 未被识别的服务 解决方法 (2)https: ...
- MyEclipse 启动报错:‘Building workspace‘ has encountered a problem解决方法
MyEclipse 启动报错:'Building workspace' has encountered a problem解决方法 参考文章: (1)MyEclipse 启动报错:'Building ...
- nginx 启动报错 “/var/run/nginx/nginx.pid“ failed” 解决方法
nginx 启动报错 "/var/run/nginx/nginx.pid" failed" 解决方法 参考文章: (1)nginx 启动报错 "/var/run ...
最新文章
- Python的进程和线程(二)——IO密集型任务
- 寒假每日一题(入门组)【week5 完结】
- Pixhawk-串级pid介绍
- mysql存储引擎简介
- [蓝桥杯][算法提高VIP]开灯游戏(dfs)
- Bootstrap 3 与 Foundation 5 的区别
- [转载总结]Linux环境下C++运行时动态链接库加载要点总结
- shell的date命令:使用方法,以及小时、分钟的计算
- 利用UIScrollView和UIPageControl实现图片切换
- Log4j2 高危漏洞分析
- 第七章 (一)暴力求解法
- java来电报名字的软件_读短信来电报姓名
- 仿制美团购物的网站源码
- jsp允许跨域访问_如何解决js跨域问题
- 数字黑洞java,java解决数字黑洞问题
- 什么是CDN,简单了解CDN
- 深空时代来临,探日究竟有何魔力?
- 两个脑仁疼的error:error in __connection_block_invoke_2: Connection interrupted
- android 设置录像帧率,华为手机设置相机录像帧率的方法
- 人类的幸福和欢乐在于奋斗,而最有价值的是为理想而奋斗