【问题标题】:Error connecting to mongodb on Cloud 9连接到 Cloud 9 上的 mongodb 时出错
【发布时间】:2014-11-17 09:30:36
【问题描述】:

我尝试连接到 mongodb based on the instructions provided here,却收到此错误:

    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 的情况下关闭本地计算机:

   #!/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作为服务启动:

  sudo service mongod start

其中,它要求我使用 mongod start,它也失败并显示相同的消息。我已经阅读了有关 net.http.enabled 的信息,应该将其关闭,因为它可能会增加网络曝光率。

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

 mongodb start

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

我也试过mongo,它告诉我:

 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 的终端窗口,因此无法启动它。但它不会让我做我通常做的事情并继续工作。

我也尝试运行它来查看mongod 是否已经在运行:

  vamsiampolu1@takenote:~/workspace (master) $ ps ax | grep mongod
  2504 pts/2    S+     0:00 grep --color=auto mongod 

我尝试使用以下命令阻止它运行:

   stop mongod

然后我再次运行它以查看 mongod 是否仍在运行:

   vamsiampolu1@takenote:~/workspace (master) $ ps ax | grep mongod
   2524 pts/2    S+     0:00 grep --color=auto mongod

当我尝试运行它时:

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

当我尝试手动设置dbpath 时:

  vamsiampolu1@takenote:~/workspace (master) $ ./mongod --dbpath /data/db
  Error parsing command line:  Multiple occurrences of option "--dbpath"

【问题讨论】:

  • 好的,介意向我们展示一些努力吗?到目前为止,您尝试了什么,调查结果如何?
  • @MarkusWMahlberg 编辑了这个问题,以反映我试图让它运行起来的一些事情,我担心这听起来像是很多噪音掩盖了这个问题。

标签: node.js mongodb cloud9-ide


【解决方案1】:

在我看来,你已经做了很多纵横交错的事情,却没有真正了解自己在做什么。

但基本的了解是必要的。因此,这里有一个分步指南,用于清理环境并希望修复数据库,并带有注释。你确实有备份,不是吗?

  1. 决定是否要将 mongod 用作您自己的用户 vamsiampolu1 或 root 或专用用户。与普遍的看法相反,sudo 命令不是 Linux/UNIX 等效的“我真的希望你执行这个命令!”和跺脚。没有-u 参数的sudo 以root 权限执行它的参数——进程的有效 用户ID 将是root 的。将为用户和组 root 创建文件和目录(问题中的进程删除 root 权限除外)。通常,最好为任何守护进程拥有一个专用用户,因此您应该使用 mongodb,因为这是由 ubuntu 和 10gen 包创建的用户。

  2. 现在我们需要确保没有 mongod 正在运行:

    vamsiampolu1@takenote:~ $ sudo killall mongod
    

    (我们想要杀死所有的 mongod 进程,并且由于唯一能够杀死可能与他自己不同的用户的进程的用户是 root,我们告诉系统以 root 执行此命令特权)

  3. 我们确保所有文件和目录都属于正确的用户

    vamsiampolu1@takenote:~ $ sudo chown mongodb.mongodb -r /var/lib/mongodb
    

    (我们想将/var/lib/mongodb下面所有目录的所有者和组递归更改为用户mongodb和组mongodb,我们需要相应的权限这样做)

  4. 我们以 mongodb 用户身份删除锁定文件

    vamsiampolu1@takenote:~ $ sudo -u mongodb rm /var/lib/mongodb/mongod.lock
    
  5. 接下来,我们将以用户 mongodb 运行修复命令

    vamsiampolu1@takenote:~ $ sudo -u mongodb mongod -f /etc/mongod.conf --repair
    

    请注意,-u mongodb 对于您的系统在修复后正常工作至关重要。

    这可能需要一段时间。仔细观察日志文件

     vamsiampolu1@takenote:~ $ tail -n 100 -f /var/log/mongodb/mongod.log
    

    如果是[initandlisten] dbexit: really exiting now,那么……

  6. 用 mongod 启动

    vamsiampolu1@takenote:~ $ sudo -u mongodb mongod -f /etc/mongod.conf 
    

    它现在应该可以工作了。如果不是,请添加上次出现的日志文件部分

    [initandlisten] repairDatabase local
    

    一直到你的问题结束。

【讨论】:

  • 当我输入 [sudo -u mongodb rm /var/lib/mongodb/mongod.lock] 命令时,它会询问我 ubuntu 的密码。请问你能给我一些建议吗?
  • @NZMAI 它应该是您执行sudo 命令的用户的密码。例如,如果您以用户“nzmai”执行此命令,则它将是“nzmai”的密码。
【解决方案2】:

如果你已经按照this方法设置了mongodb,进入你目录下的data文件夹。里面有一个文件 mongod.lock。删除它(你不需要root权限)只需使用rm mongod.lock。返回主目录并输入./mongod。希望这能解决p

【讨论】:

  • 对我的案子很有魅力!谢谢。
【解决方案3】:

就我个人而言,我经历过这种情况,并且我找到了一个快速修复方法,它也可以保留您的所有数据。我是new developer,如果您在 cloud9 上编码并使用 mongoDB,我的回答对您有用。

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

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

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

第 4 步: 使用 $ rm mongod.lock 删除此文件 注意:请勿包含 *

第 5 步:cd 回到根目录 $ cd ~ 并像往常一样启动 mongo ./mongod,所有数据都安全。

祝你好运。

【讨论】:

    【解决方案4】:

    对于Cloud9的免费用户来说,这是由于空间不足造成的,因为你只有2GB的可用空间,而MongoDB需要大量的空间。

    这里有一个解决方案:

    mongod --port 27017 --smallfiles
    

    注意:您可能会丢失一些文件

    【讨论】:

    • 你能解释一下为什么有人可能会丢失文件吗?如果有一个缺点,你至少应该清楚那是什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2021-09-08
    • 2020-12-24
    • 2019-05-11
    相关资源
    最近更新 更多