无法连接到服务器127.0.0.1:27017

我收到以下错误:

alex@alex-K43U:/$ mongo MongoDB shell version: 2.2.0 connecting to: test Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91 exception: connect failed alex@alex-K43U:/$ 

这是我尝试启动mongodb时发生的情况:

 * Starting database mongodb [fail] 

我已经尝试过mongo --repair

我做了chown和chmod到var,lib和data / db和log mongodb。

不知道还有什么要做。 有什么build议么?

mongodb.log:

 ***** SERVER RESTARTED ***** Thu Oct 11 08:29:40 Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. Thu Oct 11 08:29:40 Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U Thu Oct 11 08:29:41 [initandlisten] Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data Thu Oct 11 08:29:41 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations Thu Oct 11 08:29:41 [initandlisten] ** with --journal, the limit is lower Thu Oct 11 08:29:41 [initandlisten] Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5 Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207 Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49 Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" } Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal" ************** Unclean shutdown detected. Please visit http://dochub.mongodb.org/core/repair for recovery instructions. ************* Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating Thu Oct 11 08:29:41 dbexit: Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets... Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog... Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets... Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator... Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files... Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished Thu Oct 11 08:29:41 dbexit: really exiting now 

编辑:

我删除了锁,然后做mongod修复,并得到这个错误:

 Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating 

所以我用sudo做了:

 alex@alex-K43U:~$ sudo mongod --repair Thu Oct 11 12:05:42 Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. Thu Oct 11 12:05:42 Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U Thu Oct 11 12:05:42 [initandlisten] Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data Thu Oct 11 12:05:42 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations Thu Oct 11 12:05:42 [initandlisten] ** with --journal, the limit is lower Thu Oct 11 12:05:42 [initandlisten] Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5 Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207 Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49 Thu Oct 11 12:05:42 [initandlisten] options: { repair: true } Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal" Thu Oct 11 12:05:42 [initandlisten] finished checking dbs Thu Oct 11 12:05:42 dbexit: Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets... Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog... Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets... Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator... Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files... Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock... Thu Oct 11 12:05:42 dbexit: really exiting now 

但仍然有同样的问题。

日志表明mongodb正在终止,因为有一个旧的locking文件。

如果你不是,也没有运行日志,请删除locking文件,运行修复,然后再次启动mongodb。

如果您正在或正在运行日记function,请参阅相关的MongoDB文档 。 请注意,他们会说:“如果您正在使用日记function,则不应执行修复以恢复到一致状态。” 所以,如果你是日记,修复可能会让事情变得更糟。

 Step 1: Remove lock file. sudo rm /var/lib/mongodb/mongod.lock Step 2: Repair mongodb. sudo mongod --repair Step 3: start mongodb. sudo start mongodb or sudo service mongodb start Step 4: Check status of mongodb. sudo status mongodb or sudo service mongodb status Step 5: Start mongo console. mongo 

在运行mongo之前你运行过mongod吗?

我遵循从http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/的; mongodb的安装说明,我只有当我在运行mongo进程之前运行mongo时出现了同样的错误与mongod 。 我以为安装mongodb也会启动它,但是你需要用mongod手动启动它,然后再做任何需要mongodb的东西。

这是因为mongod进程closures了,你必须这样做才能启动mongod进程:

 sudo rm /var/lib/mongodb/mongod.lock sudo mongod --repair --dbpath /var/lib/mongodb sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb sudo service mongodb start 

希望能帮助你!

尝试

 sudo service mongodb start 

这解决了我的问题。

检查你的文件系统的可用空间,并增加它,如果它less。 这也可能导致mongo不能启动。 检查/var/log/mongodb/mongodb.log文件。

 ERROR: Insufficient free space for journal files Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles 

尝试在mongo之前运行mongod

sudo /usr/sbin/mongod在我的opensuse上

这解决了我的问题,

所以首先你必须通过下面的命令删除mongod.lock文件

 sudo rm /var/lib/mongodb/mongod.lock 

然后通过下面的命令重新启动mongo服务

 sudo service mongod restart 

你可以用netstat -anp | grep 27017来检查 netstat -anp | grep 27017来查看该端口是否被另一个进程使用。

这对我工作:

 sudo rm /var/lib/mongodb/mongod.lock sudo service mongodb restart 

我遵循http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/上的文档。;

configuration和重新启动后,我执行sudo service mongod start ,得到... [FAILED]

最后,我发现mongod已经开始了。 我认为yum install将其添加到自动启动。

要检查你的mongod是否在运行: service mongod status

希望这可以帮助一个人有同样的问题。

经过最后的频繁尝试,我才解决了这个问题。

 Step 1: ps aux | grep mongo Step 2: sudo rm /var/lib/mongodb/mongod.lock Step 3: sudo mongod --repair Step 4: mongo 

这个错误可能是由MongoDB的绑定IP设置引起的。 您可以通过查看MongoDB的configuration文件

 $ sudo vi /etc/mongodb.conf 

在我的情况下,绑定IP被设置为服务器的内部网地址,如下所示:

 bind_ip = 10.10.1.14 #port = 27017 

所以我给mongo一个IP参数来连接到shelltypes:

 $ mongo 10.10.1.14 

如果您更改了configuration,请不要忘记重新启动mongodb服务。

在Windows运行cmd作为pipe理员:

  1. 创build目录:

    mkdir c:\ mongo \ data \ db

  2. 安装服务:

    mongod.exe –install –logpath c:\ mongo \ logs –logappend –bind_ip 127.0.0.1 –dbpath c:\ mongo \ data \ db –directoryperdb

  3. 启动MongoDB:

    net启动MongoDB

4.启动Mongo Shell:

 c:\mongo\bin\mongo.exe 

这个解决scheme适合我

删除我的Windows操作系统的数据目录内的mongod.lock后,它仍然显示相同的错误信息。 我必须使用–dbpath运行mongod,以使mongo命令无误地运行。

我有mongo版本3.2.1,不得不从/data/db/删除locking文件,然后运行mongod并成功启动。

 >rm /data/db/mongod.lock >mongod 

虽然收到了答案,但我想讨论一下MongoDBnetworking错误。

网络错误MongoDB

设置安全的写入问题并不是确保我们安全的完整certificate方法。 假设设置了w=1j=true ,如果写入确认没有从服务器接收到,怎么办? 那可能是没有发生,但可能发生了。 之所以会发生这种情况,是因为有networking错误 – 我们有可能得不到肯定的答复。 因此,我们可以通过select的语言驱动程序发送来自应用程序的请求。 mongod可以成功完成,然后可能会有一个TCP重置,networking实际上可以得到重置,我们从来没有收到答复。 所以,我们可以得到一个错误,并在错误,我们可能会认为我们得到一个错误。 这没有发生,但可能会发生。

对于插入,可以防止它。 这是可能的,因为如果我们让驱动程序创build_id并且我们插入 – 那么我们可以做多次插入,这将是任何伤害。 因为,如果我们这样做了一次,并且出现错误,并且我们不确定插入是否完成,因为这是networking错误,那么我们可以重新执行一次。 并提供我们再次执行,tyr执行确切的_id 。 最糟糕的情况是,当我们尝试插入它时,会出现重复键错误。

但是,更新是问题发生的地方。 尤其是,更新不是强项,例如包含一个$ink命令。 所以,我们告诉数据库增加一个特定的字段。 那么在这种情况下,如果我们得到networking错误,我们不知道更新是否发生。 现在,也许我们知道足够的价值,我们可以与他们检查更新发生,这是好的。 但是,如果我们不知道该字段的数据库中的起始值,那么在发生networking错误的情况下,我们不可能知道它是否发生。 这种问题是非常罕见的一个良好的networking。

如果我们真的需要不惜一切代价来避免它,我们需要做的就是把所有的更新转化为插入,通过从数据库中读取文档的全部值,然后删除它并重新插入,或者插入一个新的。

即使写入成功,应用程序可能会收到错误的原因:

  • 在服务器接收到写入之后但在可以发送响应之前,应用程序和服务器之间的networkingTCP连接被重置。
  • MongoDB服务器在接收写入和响应之间终止。
  • networking在写入时间和客户端收到写入响应的时间之间发生故障。

将环境variables中的bin添加到PATH中有所帮助。

GOTO安装path并将../bin复制到Windows环境variables中的PATHvariables中

Thu Oct 11 12:05:42 [initandlisten]无法检查日志文件,因为:boost :: filesystem :: basic_directory_iterator 构造函数:没有这样的文件或目录:“/ data / db / journal” Thu Oct 11 12:05: 42 [initandlisten]完成检查dbs

这行没有这样的文件或目录, 所以创build文件夹/数据/数据库的根,然后尝试“mongod”,希望这将工作

键入windows + r并input以下内容

SERVICES.MSC

启动MongoDB

现在在mongo.exe所在的path中的cmd中键入“mongo”,它将开始工作。