无法连接到服务器 127.0.0.1 shell/mongo.js
- 2024-11-07 08:55:00
- admin 原创
- 29
问题描述:
当我在我的 ubuntu 中设置 mongodb 时,我尝试:./mongo 它显示此错误:
couldn't connect to server 127.0.0.1 shell/mongo.js
那我能做什么呢?
谢谢
解决方案 1:
手动删除锁文件:
sudo rm /var/lib/mongodb/mongod.lock
运行修复脚本:
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
请注意以下事项:
您必须以 mongodb 用户身份运行此命令。如果您以 root 身份运行它,则 root 将拥有 /var/lib/mongodb/ 中运行 mongodb 守护进程所需的文件,因此当守护进程稍后尝试以 mongodb 用户身份运行时,它将无权启动。在这种情况下,您将收到此错误:无法为 lockfilepath 创建/打开锁定文件:/var/lib/mongodb/mongod.lock errno:13 权限被拒绝,终止。
在 Ubuntu 上,您必须使用 -f 标志指定配置文件 /etc/mongodb.conf。否则,它会在错误的位置查找数据文件,您将看到以下错误:dbpath (/data/db/) 不存在,终止。
解决方案 2:
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo service mongodb start
全部内容就是这样,有时,执行这些操作后需要一点时间才能启动 mongo。
解决方案 3:
尝试运行 $mongod
如果你得到如下错误
MongoDB shell version: 2.0.5
connecting to: test
Fri Jun 1 11:20:33 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed
hisham-agil:~ hisham$ mongod
mongod --help for help and startup options
Fri Jun 1 11:24:47 [initandlisten] MongoDB starting : pid=53452 port=27017 dbpath=/data/db/ 64-bit host=hisham-agil.local
Fri Jun 1 11:24:47 [initandlisten] db version v2.0.5, pdfile version 4.5
Fri Jun 1 11:24:47 [initandlisten] git version: nogitversion
Fri Jun 1 11:24:47 [initandlisten] build info: Darwin gamma.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
Fri Jun 1 11:24:47 [initandlisten] options: {}
Fri Jun 1 11:24:47 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db/) does not exist, terminating
Fri Jun 1 11:24:47 dbexit:
Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close listening sockets...
Fri Jun 1 11:24:47 [initandlisten] shutdown: going to flush diaglog...
Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close sockets...
Fri Jun 1 11:24:47 [initandlisten] shutdown: waiting for fs preallocator...
Fri Jun 1 11:24:47 [initandlisten] shutdown: lock for final commit...
Fri Jun 1 11:24:47 [initandlisten] shutdown: final commit...
Fri Jun 1 11:24:47 [initandlisten] shutdown: closing all files...
Fri Jun 1 11:24:47 [initandlisten] closeAllFiles() finished
Fri Jun 1 11:24:47 dbexit: really exiting now
那么您遇到了一个相当常见的基本启动错误。
默认情况下,mongod 将尝试使用 /data/db 作为其数据库文件,但在本例中,该文件不存在。
你无法开始
mongo
直到你处理
mongod.
尝试创建这些目录并确保运行 mongod 进程的同一用户可以写入它们。
**参见类似问题——在 mac osx lion 上尝试运行 mongodb 时出现错误“错误:无法连接到服务器 127.0.0.1 shell/mongo.js”
解决方案 4:
这实际上不是一个错误...这里发生的情况是,Mongo 依赖守护进程来运行本地数据库服务器,因此为了在您的 shell 中“启动” mongo 服务器,您必须首先启动mongo 服务。
对于Fedora Linux(我使用的发行版),您必须运行以下命令:
1 sudo service mongod start
2 mongo
就这样!服务器将要运行了。现在,如果您希望 Mongo 服务在系统启动时启动,那么您必须运行:
sudo chkconfig --levels 235 mongod on
就这样!如果你这样做了,现在在 shell 中你只需要输入mongo就可以启动服务器,但这就是全部了,问题是你必须先启动服务,然后再启动服务器 :)
PS 我发布的命令可能也适用于其他 Linux 发行版,而不仅仅是 Fedora...如果不是,也许你必须根据你使用的发行版调整一些词语;)
解决方案 5:
当我尝试安装 mongo 时,我遇到了同样的问题。我得到的错误如下:
错误
"Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84"
解决方案:
首先使用以下命令安装 mongod:
sudo apt-get install mongodb-server
然后输入
mongod --dbpath /mongo/db
然后
sudo rm /var/lib/mongodb/mongod.lock
然后
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
谢谢
解决方案 6:
您需要删除 ubuntu 上的锁文件mongod.lock
或/var/lib/mongodb/mongod.lock
,然后您需要先在 ubuntu 上运行mongod.exe
或,然后在 ubuntu 上运行或。service mongodb start
`mongo.exe`mongo
解决方案 7:
您的 mongod 可能未运行(使用“ps”命令检查),或者它正在监听某个外部 IP 地址而不是本地主机。因此,首先检查进程列表,看“mongod”是否正在运行。如果是,请使用“netstat -nap”检查相关端口。
当然,您可以手动在控制台上启动 mongod 甚至查看 mongod 日志文件(如果已配置...取决于您如何安装 mongod)。
解决方案 8:
首先,您必须确保 /var/lib/mongodb/ 文件夹(或 dbpath 指向的任何文件夹)中的所有文件和目录都属于 mongodb 用户和 mongodb 组。
cd /var/lib/mongodb/
sudo chown mongodb filename.*
sudo chgrp mongodb filename.*
sudo chown -R mongodb directory
sudo chgrp -R mongodb directory
(将文件名和目录替换为各自的名称)
然后,您可以删除锁,修复数据库并重新启动守护进程,正如其他人提到的那样:
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo service mongodb start
解决方案 9:
首先启动你的 mongo 服务器
Users-MacBook-Pro:csv1 Admin$ mongod
all output going to: /usr/local/var/log/mongodb/mongo.log
然后打开另一个终端窗口并打开 shell
Users-MacBook-Pro:csv1 Admin$ mongo
解决方案 10:
还要检查根分区是否有足够的空间来启动 mongod。
df -h /
你会在 mongod 启动时看到类似这样的内容:
Mon Aug 12 17:02:59.159 [initandlisten] recover : no journal files present, no recovery needed
Mon Aug 12 17:02:59.159 [initandlisten]
Mon Aug 12 17:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files
Mon Aug 12 17:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
Mon Aug 12 17:02:59.159 [initandlisten]
Mon Aug 12 17:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Mon Aug 12 17:02:59.159 dbexit:
Mon Aug 12 17:02:59.159 [initandlisten] shutdown: going to close listening sockets...
解决方案 11:
在 Ubuntu 上,尝试这个:
sudo invoke-rc.d mongodb start
解决方案 12:
这可能是 $PATH 和权限问题的结合。
请尝试按照下面给出的步骤:
更新您的 $PATH 变量以指向您的 MongoDB bin 文件。在我的例子中,brew 将 MongoDB 安装到此文件夹:
/usr/local/Cellar/mongodb/2.4.6/
为了更新您的 $PATH 变量,请执行以下操作:
$ sudo vi /etc/paths
然后,按“i”在 Vi 中插入文本并将您的 MongoDB 路径附加到“paths”文件的末尾,然后重新启动终端。
/usr/local/Cellar/mongodb/2.4.6/bin
使用“Esc:w q”保存并退出 Vi 编辑器。
使用 echo 显示路径变量:
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/Cellar/mongodb/2.4.6/bin
现在尝试检查 Mongo 版本,如果您得到以下内容,那么您就走在正确的轨道上!
$ mongo --version
MongoDB shell version: 2.4.6
现在我们需要创建数据库目录。我使用了 MongoDB 文档中建议的默认“/data/db”位置。我还创建了一个日志目录,以避免 Mongo 尝试创建任何日志时出现任何权限问题。更改所有权即可完成工作。
$ sudo mkdir /data/db
$ sudo mkdir /data/log
$ whoami
username
$ chown -R username /data
现在,我们将为 MongoDB 创建一个默认配置文件,以便在我们第一次运行“mongod”命令时使用。现在,我还想指出“mongod”将启动一个服务,它将监听传入的数据连接。这类似于执行“$service mysqld start”。让我们继续创建配置文件。请记住,我创建的是非常基本的配置文件。但是,您可以添加许多其他变量来配置 MongoDB。这是我第一次使用 MongoDB,所以我只知道我在 MongoDB 文档上读到的内容!我创建了“mongodb.conf”。
$ sudo vi /etc/mongodb.conf
添加以下内容:
fork = true
port = 27017
quiet = true
dbpath = /data/db
logpath = /data/log/mongod.log
logappend = true
journal = true
请注意,MongoDB 服务器的默认端口是 27017。使用您在步骤 5 中创建的 dbpath 和 logpath 的路径。不要忘记关闭并保存 conf 文件。
现在我们已准备好启动 MongoDB 服务。打开两个终端实例。在终端 1 中输入:
$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 3516
all output going to: /data/log/mongod.log
child process started successfully, parent exiting
如果您收到上述消息,则表明您已成功启动 Mongod 服务。
现在,要连接它,请在终端 2 中输入以下内容:
$mongo test
MongoDB shell version: 2.4.6
connecting to: test
Server has startup warnings:
Tue Sep 3 16:55:43.527 [initandlisten]
Tue Sep 3 16:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>
忽略警告,但您已成功连接到“测试”数据库!太棒了!
就这些。当我第一次尝试在 Mac 上安装 MongoDB 副本时,我应用了这个解决方案。看看这是否也能帮助你。
有关详细帖子,您可以访问此处 - http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094。
我希望它有帮助!
干杯,Chinmay
解决方案 13:
我通过以下步骤在 ubuntu 12.04 上解决了这个问题:
1)sudo rm /var/log/mongodb
2)sudo rm /var/lib/mongodb
3)我删除了 mongo,然后再次安装它
4)sudo service mongodb restart
一切都好
解决方案 14:
对于 Ubuntu:
只需打开终端并输入以下命令。你只需要重新启动 mongoDB。
sudo service mongodb restart
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件