首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接云9上的mongodb时出错

连接云9上的mongodb时出错
EN

Stack Overflow用户
提问于 2014-11-17 09:30:36
回答 4查看 4.9K关注 0票数 1

我试图连接到mongodb 根据这里提供的指示,但得到了以下错误:

代码语言:javascript
复制
    vamsiampolu1@takenote:~/workspace (master) $ ./mongod
2014-11-17T09:00:10.101+0000 ** WARNING: --rest is specified without --httpinterface,
2014-11-17T09:00:10.101+0000 **          enabling http interface
warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default
2014-11-17T09:00:10.106+0000 [initandlisten] MongoDB starting : pid=2274 port=27017 dbpath=data 64-bit host=vamsiampolu1-takenote-1084968
2014-11-17T09:00:10.106+0000 [initandlisten] db version v2.6.5
2014-11-17T09:00:10.106+0000 [initandlisten] git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6
2014-11-17T09:00:10.106+0000 [initandlisten] build info: Linux build8.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2014-11-17T09:00:10.106+0000 [initandlisten] allocator: tcmalloc
2014-11-17T09:00:10.107+0000 [initandlisten] options: { net: { bindIp: "0.0.0.0", http: { RESTInterfaceEnabled: true, enabled: true } }, storage: { dbPath: "data", journal: { enabled: false } } }
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
2014-11-17T09:00:10.107+0000 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
2014-11-17T09:00:10.107+0000 [initandlisten] dbexit: 
2014-11-17T09:00:10.107+0000 [initandlisten] shutdown: going to close listening sockets...
2014-11-17T09:00:10.107+0000 [initandlisten] shutdown: going to flush diaglog...
2014-11-17T09:00:10.107+0000 [initandlisten] shutdown: going to close sockets...
2014-11-17T09:00:10.107+0000 [initandlisten] shutdown: waiting for fs preallocator...
2014-11-17T09:00:10.107+0000 [initandlisten] shutdown: closing all files...
2014-11-17T09:00:10.107+0000 [initandlisten] closeAllFiles() finished
2014-11-17T09:00:10.107+0000 [initandlisten] dbexit: really exiting now

编辑:

我尝试过使用mongod --repair标记,我还尝试执行这个脚本,如果我没有正确关闭mongod,就关闭了本地机器,我就是这样做的:

代码语言:javascript
复制
   #!/bin/sh
  sudo rm /var/lib/mongodb/mongod.lock
  sudo -u mongodb mongod -f /etc/mongodb.conf --repair
  sudo service mongodb start

它说没有找到/var/lib/mongodb/mongod.lock文件,我尝试将mongodb作为一个服务启动:

代码语言:javascript
复制
  sudo service mongod start

其中,它要求我使用同样的消息也失败的mongod start。我读过关于net.http.enabled应该关闭,因为它可能增加网络曝光率。

我曾经使用过基于Ubuntu 12.04vagrant盒,所以我尝试了:

代码语言:javascript
复制
 mongodb start

这告诉我mongodb不是有效的命令。

我也尝试过mongo,它告诉我:

代码语言:javascript
复制
 vamsiampolu1@takenote:~/workspace (master) $ mongo
 MongoDB shell version: 2.6.5
 connecting to: test
 2014-11-17T11:51:44.752+0000 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111     Connection refused
 2014-11-17T11:51:44.753+0000 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1),   connection attempt failed at src/mongo/shell/mongo.js:146
 exception: connect failed

我相信我可能错误地关闭了运行mongod的终端窗口,因此无法启动it.But --它不会让我做我通常做的事情并继续工作。

我还尝试运行这个程序,以确定mongod是否已经在运行:

代码语言:javascript
复制
  vamsiampolu1@takenote:~/workspace (master) $ ps ax | grep mongod
  2504 pts/2    S+     0:00 grep --color=auto mongod 

我试图使用以下方法阻止它运行:

代码语言:javascript
复制
   stop mongod

然后我又跑了一遍,看看蒙神是否还在跑:

代码语言:javascript
复制
   vamsiampolu1@takenote:~/workspace (master) $ ps ax | grep mongod
   2524 pts/2    S+     0:00 grep --color=auto mongod

当我试图运行这个:

代码语言:javascript
复制
      vamsiampolu1@takenote:~/workspace (master) $ mongod --shutdown
      There doesn't seem to be a server running with dbpath: /data/db

当我尝试手动设置dbpath时:

代码语言:javascript
复制
  vamsiampolu1@takenote:~/workspace (master) $ ./mongod --dbpath /data/db
  Error parsing command line:  Multiple occurrences of option "--dbpath"
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-17 12:29:23

在我看来,你已经做了很多事情交叉交叉,而没有真正理解你在做什么。

但基本的理解是必要的。因此,下面是一个逐步的指南,用于净化环境,并希望修复带注释的数据库。你有后援,不是吗?

  1. 决定您是要使用mongod作为您自己的用户,vamsiampolu1还是根用户,还是使用专用用户。与流行的观点相反,sudo命令并不等同于“我真的希望您执行此命令!”还有一次脚踏。没有-u参数的sudo以根权限执行它的参数-进程的有效用户id将是根用户的。文件和目录将为用户和组根创建(除了问题中的进程删除根权限)。通常,最好有一个专门的用户来处理任何守护进程,所以您应该使用mongodb,因为这是由ubuntu和10 and包创建的用户。
  2. 现在,我们需要确保不存在运行单神的情况: vamsiampolu1 1@takenote:~$ sudo killall mongod (我们想要杀死所有的单神进程,而且由于唯一能够杀死可能属于不同于他自己的用户的进程的用户是root,所以我们告诉系统使用root权限执行此命令)
  3. 我们确保所有文件和目录都属于正确的用户。 vamsiampolu1 1@takenote:~$ sudo chown mongodb.mongodb -r /var/lib/mongodb (我们希望递归地将/var/lib/mongodb下面所有目录的所有者和组更改为用户mongodb和mongodb组,并需要相应的特权)
  4. 我们以用户mongodb的身份删除锁文件。 vamsiampolu1 1@takenote:~$ sudo -u mongodb /var/lib/mongodb/mongod.lock
  5. 接下来,我们将以用户mongodb的身份运行修复命令。 vamsiampolu1 1@takenote:~$ sudo -u mongodb mongod -f /etc/mongod.conf -修复 请注意,-u mongodb对于您的系统在修复后能够正常工作至关重要。 这可能需要一段时间。仔细观察日志文件 vamsiampolu1 1@takenote:~$ -n 100 -f /var/log/mongodb/mongod.log 如果上面写的是[initandlisten] dbexit: really exiting now,那么…
  6. 蒙神 vamsiampolu1 1@takenote:~$ sudo -u mongodb mongod -f /etc/mongod.conf 现在应该管用了。如果没有,请添加日志文件的一部分,从上次出现的 侦听repairDatabase本地 一直到你问题的结尾。
票数 6
EN

Stack Overflow用户

发布于 2016-03-16 08:44:36

如果您已经根据方法设置了mongodb,请转到目录中的data文件夹。其中有一个文件mongod.lock。删除它(您不需要根权限),只需使用rm mongod.lock。返回主目录并输入./mongod。希望这能解决问题

票数 4
EN

Stack Overflow用户

发布于 2017-03-10 14:23:59

就我个人而言,我已经经历过这种情况,我发现了一个快速修复程序,它保留了所有的数据。我是一个new developer,如果您在cloud9上编码并使用mongoDB,我的答案将对您有效。

步骤1:导航到在终端中安装mongoDB的目录,您将找到可以使用$ cd ~导航到此目录的文件mongod*

步骤2: cd进入数据目录$ cd data/

步骤3:查看此目录ls中的所有文件和文件夹。您将找到一个文件mongod.lock*

步骤4:使用$ rm mongod.lock NB:不包括*删除此文件

步骤5: cd返回到根目录$ cd ~和启动mongo与通常的./mongod与所有数据安全。

祝你好运。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26969448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档