ChatGPT解决这个技术问题 Extra ChatGPT

无法连接到服务器 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 并记录 mongodb。

不知道还能做什么。有什么建议么?

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

但仍然有同样的问题。

我认为此链接将通过更改 mongo 的 db 路径来帮助您stackoverflow.com/questions/9647561/…
sudo service mongod restart 为我工作

N
Nanhe Kumar
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 

嗨 Nanhe Kumnar 终端的初始路径是什么。我们应该去 cd /usr/local/opt/mongodb/ 文件夹还是其他,我面临以下问题 Vijayvir-Singh:~ vijayvir$ sudo rm /var/lib/mongodb/mongod.lock rm: /var/lib /mongodb/mongod.lock: 没有这样的文件或目录 Vijayvir-Singh:~ vijayvir$
@vvss 首先找到文件的路径。用这个。找到 mongod.lock
在 2.4.8 版中,它是 /data/db/mongod.lock 而不是 /var/lib/mongodb/mongod.lock
e
eloone

您是否在运行 mongo 之前运行了 mongod

我按照 http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ 中的 mongodb 安装说明进行操作,只有在使用 mongod 实际运行 mongo 进程之前运行 mongo 时,我才遇到与您相同的错误。我认为安装 mongodb 也会启动它,但在执行其他任何需要 mongodb 的操作之前,您需要使用 mongod 手动启动它。


这是我的问题。我很惊讶这在“Mongo 入门”文档中没有明确说明。
从用户体验的角度来看,这确实没有意义。 mongo.exe 应该是启动数据库的那个。
J
Javier Gomez

这是因为 mongod 进程已关闭,您必须运行以下命令才能启动 mongod 进程:

~$ sudo service mongodb stop

~$ 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 mongod stopsudo service mongodb stop,因为有些人可能仍在运行它们。
它帮助我重新启动了 mongo。但是我无法再访问旧数据库了。你能帮我吗?
T
Trott

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

如果您不是并且没有运行日志,请删除锁定文件,运行修复,然后再次启动 mongodb。

如果您正在或曾经在开启日志的情况下运行,请参阅 the relevant Mongo DB docs。请注意,他们说“如果您使用日记功能运行,则不应进行修复以恢复到一致的状态。”所以如果你在写日记,修理可能会让事情变得更糟。


维修会损坏东西,这很糟糕!
在启用日记功能的情况下,如果我经常收到连接被拒绝错误该怎么办?
A
Arun Kumar Mohan

尝试

sudo service mongodb start

这解决了我的问题。


sudo service mongod startsudo service mongodb start 有什么区别
我不太确定,但猜测 mongodb 是服务的名称,而 mongod 是程序文件的名称。
M
Mohammadreza Abdoli

苹果系统

如果你有 mac 并使用 mongodb4.4,你可以运行:

brew services start mongodb-community@4.4

m
msnfreaky

检查您的文件系统可用空间,如果它更少,请增加它。这也可能导致 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

这发生在我身上,我将 smallfiles=true 添加到文件 /etc/mongod.conf
M
Max

尝试在 mongo 之前运行 mongod

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

这解决了我的问题,


u
user3470929

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

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

然后通过发出以下命令重新启动 mongo 服务

sudo service mongod restart 

t
theProcrastinator

在 Windows 中以管理员身份运行 cmd

1.创建目录:

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 start MongoDB

4.启动Mongo Shell:

c:\mongo\bin\mongo.exe

这个解决方案对我有用。


E
Efren

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


奇怪,我得到了这个:alex@alex-K43U:~$ netstat -anp | grep 27017 (并非所有进程都可以识别,不会显示非拥有进程信息,您必须是 root 才能看到所有内容。)
这是作为非 root 用户执行时的正常结果,因为 netstat 将只显示您的用户被允许查看的进程。
你可以使用 sudo netstat -anp | grep 27017 绕过该警告
这个对我有用,非常感谢。当我运行给定的代码 unix 2 [ ] STREAM 31095 - /tmp/mongodb-27017.sock 并删除了 .sock 文件时,我得到了这个,现在一切都很好。
R
RileyManda

为了将来参考,请按照以下步骤避免类似错误:

1.下载 MondoDB https://www.mongodb.com/

2.打开终端并 cd 进入您的下载文件夹或保存 mondodb 下载的任何文件夹(确保在 cd 进入之前解压缩 mongodb 文件夹)

cd Downloads

3.将mongodb移动到你的usr/local路径

sudo mv mongodb-osx-... /usr/local/mongodb

4.cd 进入本地文件夹

cd /usr/local/mongodb

5.新建一个目录

sudo mkdir -p /data/db

6.cd进入上面刚刚创建的新目录

cd /data/db

7.give mongo 权限

sudo chown YourMacUserName /data/db

8.然后去/打开你的 .bash_profile

为此,请按照以下步骤操作:

在您的新终端中

1cd 2.pwd 3ls -l

检查 .bash_profile 是否出现在终端的文件列表中

如果不创建 -bash_profile

创建 .bash_profile:

在你的终端

触摸 .bash_profile

//如果你已经有一个 .bash_profile 跳过这一步

第八步:

接下来在您的终端中:

open .bash_profile

在弹出的 bash 文件中添加以下内容:

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

然后保存。(文件保存或命令 S/CMD+S)

Step9:回到你的终端:

source .bash_profile

现在打开两个终端。一个将用于您的 mondo 守护程序,另一个用于您的 mongo。

终端 1:在您的终端类型中:mongod

mongodb

https://i.stack.imgur.com/vdsr6.png

2号航站楼:

mongo

https://i.stack.imgur.com/0YYqY.png

还要确保在终端中启动 mongod 时不会出现以下拼写错误:这是不正确的

mongo d

发出以下错误:无法连接到 127.0.0.1:27017,在(轮询后检查套接字是否有错误),原因:连接被拒绝

这是对的:

mongod

(mongo 和 d..mondod 之间不应有空格

最后始终记住,在终端上运行 mongo 之前必须运行 mondod。


A
Abel

第一次尝试:

sudo service mongod restart 

如果您收到错误:活动:失败(结果:退出代码)自 2021 年 3 月 29 日星期一 19:59:07 WEST 以来; 3s

这可能是因为 /var/lib/mongodb 和 /tmp/mongodb-27017.lock 上的权限设置错误。您必须将所有者更改为 monogdb 用户

尝试:

chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock

sudo service mongod restart

那是我的问题,谢谢。为什么这种情况会持续一段时间?我不得不在 2 周前修复它
s
shA.t

这对我有用:

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

A
Ahmad Al-Kurdi

在终端中运行这些命令

1)

$ sudo service mongod start

2)

 $ mongo

y
yangsibai

我关注了 http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ 的文档。

配置并重新启动后,我执行 sudo service mongod start 并得到 ... [FAILED]

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

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

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


s
shA.t

经过多次尝试,我终于解决了问题......

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

H
Haoming Zhang

此错误可能是由 MongoDB 的绑定 IP 设置引起的。您可以通过以下方式检查 MongoDB 的配置文件

$ sudo vi /etc/mongodb.conf

在我的例子中,绑定 IP 设置为服务器的内网地址,如下所示:

bind_ip = 10.10.1.14 
#port = 27017

所以我给了mongo一个IP参数来按类型连接到shell:

$ mongo 10.10.1.14

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


t
thehme

我有 mongo 3.2.1 版,必须从 /data/db/ 中删除锁定文件,然后运行 mongod 并成功启动。

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

k
kta

在我的 Windows 操作系统的数据目录中删除 mongod.lock 后,它仍然显示相同的错误消息。我必须使用 --dbpath 运行 mongod 才能使 mongo 命令运行时没有错误。


x
xameeramir

虽然收到了答案,但我希望在 MongoDB 中讨论网络错误。

https://lh3.googleusercontent.com/HJnIrLrd4gm35QhZZfacjLtb7TkNZ2wdbQgxq2iZIc5Z9UCcf5entavFy-5m7iFojDQVynpMxj2NYT_U3dAcT-6Aek8O4m5TDfxoCVEfkn01sboUP7BgIib7BrH9JPG35xRFfl5cS2SUDH_tKVoQ4uGaQ3iiBeJhxP4CewBNGyfe44xSSX7gGh_wLnLplzNNbjDOuR5n_QNh3X23Ngh2hM6X7MGzdL4oR2pIy2ReHXSKp0f-citqdSJabig3puMFyx_hvCdrQUzcW5fX2rGlHad8vXs8bbEV_OQBesPAiczoJ6ifKMI-CDwFM94dBaQXGM3Y5iSkTNCWeZ6BWnL5LFxneY2ygEMjZzBuxDZSQyZnKBbSYmyUgDe_9OVmaQ7KVzJm9opwY-rgWjKZ1952rarW9gNxuqkG5bdx-pbL-VaDrXgBf2Cee7tBc2OGXdISLO8fgeT6eDddMavOlEStTKlpt55P1do-SNDtEzbjc0mA-z4vMoZApl3kS99ZNU1kDC-mYnkSSi5bsu442p4ET2I2v3PJODOwJa6xHn0_iaGNNMPe-RxPHDshiAre0qUiqCKfwmuZH8uUZQ2n2aPnkUX5XemyNekycbqAucXXbCnkG8b4=w514-h158-no

设置安全写入关注点并不是确保我们安全的完整证明方法。让我们假设 w=1 & j=true 已设置,如果没有收到来自服务器的写确认怎么办?好吧,很可能是它没有发生,但它可能已经发生了。发生这种情况的原因是存在网络错误 - 我们可能无法收到肯定的响应。因此,我们可以通过选择语言的驱动程序从应用程序发送请求。 mongod 可以成功完成它,然后可能会进行 TCP 重置,并且网络实际上可以以我们从未收到响应的方式重置。所以,我们可能会得到一个错误,并且在这个错误上,我们可能会假设我们得到了一个错误。它没有发生,但它可能会发生。

对于插入,可以防范它。这是可能的,因为如果我们让驱动程序创建 _id 并执行插入 - 那么我们可以多次执行该插入,这将是任何伤害。因为,如果我们第 1st 次执行此操作并收到错误,并且由于网络错误而不确定该插入是否完成,那么我们可以再次执行此操作。如果我们再次执行它,请使用确切的 _id 执行它。最坏的情况是当我们尝试插入它时会得到一个重复的键错误。

但是,更新是问题发生的地方。特别是对物品无效的更新,例如包含 $ink 命令。所以,我们告诉数据库增加某个字段。那么在这种情况下,如果我们遇到网络错误并且我们不知道更新是否发生。现在,也许我们对值有足够的了解,可以通过它们检查更新是否发生,这很好。但是如果我们不知道该字段在数据库中的起始值,那么我们就不可能知道它是否发生在网络错误的情况下。这种问题在网络良好的情况下极为罕见。

如果我们真的需要不惜一切代价避免它,我们需要做的是打开我们所有的更新插入,通过从数据库中读取文档的完整值然后可能删除它并再次插入它或者只是插入一个新的。

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

应用程序和服务器之间的网络 TCP 连接在服务器收到写入后但在发送响应之前被重置。

MongoDB 服务器在接收写入和响应写入之间终止。

网络在写入时间和客户端收到写入响应之间发生故障。


V
Varsh

这对我有用要停止使用 mongodb:

use admin
db.shutdownServer()

并重新启动:

sudo service mongod restart

S
Sumukh Bhandarkar

在环境变量中将 bin 添加到 PATH 有帮助。

转到安装路径并将 ../bin 复制到 Windows 环境变量中的 PATH 变量中


G
Gireesh k

键入 windows+r 并输入以下内容

services.msc 启动 MongoDB

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


I
Ivan Kaloyanov

1.在d盘D:/data/db新建文件夹

2.在 D:/data/db 上打开终端

3.键入mongod并输入。

4.键入mongo并输入。

而你的 mongodb 已经分层了............


A
Ajay Rawat

只需从 C:\Program Files\MongoDB\Server\4.0\bin 运行 mongod --repair

这是文档https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/


S
Shashwat Gupta

简单跑两点赞

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

S
Shyambeer Singh

我遇到了类似的错误,但根本原因不同。使用自制软件安装 mongodb 后。 https://docs.mongodb.com/manual/installation/ 在终端上发出“mongo”命令之前,我必须启动“mongod”服务。


L
Laura Corssac

如果您使用的是 OS X 系统,则没有 service 命令。因此您将无法执行 sudo service mongod start

查看此答案 https://unix.stackexchange.com/a/155746 以获得更多帮助!


M
Mohit Rakhade

错误:无法连接到服务器 127.0.0.1:27017

这是 WINDOWS 用户在此处输入代码的解决方案 1. 创建目录:

mkdir c:\mongo\data\db

安装服务:首先用cd进入MongoDB程序文件中的bin目录

mongod.exe --install --logpath

启动 MongoDB:net start MongoDB

4.启动Mongo Shell:

`c:\mongo\bin\mongo.exe` or

转到直到 bin 并输入 mongo

注意:在管理员模式下打开终端


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅