MongoDb使用代码100关闭


90

我遵循了MongoDb文档来设置我的第一个MongoDb,

当我使用命令启动MongoDB时

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

我收到以下错误 在此处输入图片说明

Answers:


148

MongoDB需要一个文件夹来存储数据库。创建C:\data\db\目录:

mkdir C:\data\db

然后启动MongoDB:

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

C:\data\db由于先前的安装,有时文件夹已经存在。因此,如果由于这个原因mongod.exe不起作用,则可以从C:\data\db文件夹中删除所有内容,然后mongod.exe再次执行。


如果您看到错误的详细信息,则有一行显示C:\data\db\ 未找到目录。使用:mkdir C:\data\db
cespon

@cespon Gold tag ..:P
Aravind

我的实际上是/mongodb_data/db
Fabricio

确保数据目录和文件归mongodb用户和组所有(在Linux上)。
PeterM

69

为macOS用户解决此问题:

您需要执行以下步骤:

创建“ db”目录。这是Mongo数据文件所在的位置。您可以通过运行以下命令在默认位置创建目录:

sudo mkdir -p /data/db

/data/db通过运行以下命令,确保目录具有正确的权限:

sudo chown -R `id -un` /data/db

现在您已经sudo mongod准备就绪,可以运行以启动Mongo服务器。

如果仅运行,则不起作用 mongod

来源


3
同样在Ubuntu 16.04
马诺林蛙

mkdir: /data/db: Read-only file system在运行第一个命令时得到。我该如何解决?谢谢。
LC

@LC将sudo添加到mkdir命令
Itay Bachar


15

C:\data\db在Windows中更改默认的db文件夹,命令是:

--dbpath

例如:

\mongod --dbpath C:\myfolder

7

Mac用户

而不是使用以下命令运行MongoDB:

sudo mongod

mongod如果您满足以下条件,则可以改用:

  1. 找到mongodb的数据文件夹(通常是〜/ data)
  2. 添加读写权限 sudo chmod -R ugo+rw data

如果您sudo在运行mongodb(sudo mongod)时需要使用,则意味着您对mongodb数据文件夹没有读写权限


1
谢谢你 我必须添加读/写到/ data的权限,我不明白自己做错了什么,但我将数据文件夹设置为〜/ Applications / mongodb / data
vinsentos

3

请采取以下步骤:

  1. 就像其他朋友提到的那样,您应该首先创建一个目录来存储数据库数据。该文件夹可能类似于:

    C:\ mongo-data

  2. 从命令行导航到安装mongodb的位置以及mongod.exe的位置。就我而言,完整路径是:

    C:\ Program Files \ MongoDB \ Server \ 3.4 \ bin

  3. 从此处运行mongod.exe,并将其路径传递给使用标志--dbpath的第一步中创建的文件夹,如下所示:

    mongod.exe --dbpath“ C:\ mongo-data”

请注意:如果您使用的是Windows,则必须在上面使用双引号(“”)才能正常运行。

这样,您将获得如下内容:

2017-06-14T12:45:59.892+0430 I NETWORK  [thread1] waiting for connections on port 27017

如果在Windows上使用单引号(''),则会得到:

2017-06-14T01:13:45.965-0700 I CONTROL  [initandlisten] shutting down with code:100

希望它有助于解决问题。


1

要使用mongod命令运行Mongo DB守护程序,您应该有一个数据库目录,可能需要运行:

mkdir C:\data\db

另外,MongoDB需要对该目录具有写权限,否则它应以超级用户权限(如)运行sudo mongod


1

尝试启动mongodb时(在Mac OS上),我一直收到以下错误。

"shutting down with code:100"

我正在使用以下命令:

./mongod --dbpath=~/mongo-data

对我来说,解决方法是我不需要“ =”符号,这会导致错误。所以我做了

./mongod --dbpath ~/mongo-data

只是想把它扔在那里,因为错误绝不表明这是问题所在。我几乎删除了〜/ mongo-data目录的内容,以查看是否有帮助。很高兴,我记得cli参数有时不使用“ =”号。


1

首先,您必须创建MongoDB存储数据的数据目录。MongoDB的默认数据目录路径是启动MongoDB的驱动器上的绝对路径\ data \ db。

如果已安装在C:/驱动器中,则必须创建data \ db目录。在cmd中执行此运行命令

C:\>mkdir data\db

要启动MongoDB,请运行mongod.exe。

"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --dbpath="c:\data\db"

--dbpath选项指向您的数据库目录。 在此处输入图片说明

连接到MongoDB。

"C:\Program Files\MongoDB\Server\4.2\bin\mongo.exe"

检查所有工作是否良好:

show dbs

在此处输入图片说明


1

1.如果显示错误(使用代码100关闭),则表明它找不到所需的文件位置。

1.a如果在macOS Catalina之前,请使用sudo mkdir -p / data / db创建目录,并授予使用
sudo chown -R id -un/ data / db的权限。

1.b如果它是macOS Catalina之前的版本,则使sudo mkdir -p / System / Volumes / data / db并赋予其权限sudo chown -R id -un / System / Volumes / data / db。

2.启动mongo db brew服务运行mongodb-community

3.输入mongod或mongod --dbpath / System / Volumes / Data / data / db

4,如果mongod显示错误(使用代码48关闭),则
表明该端口已被使用,因此您可以做两件事

4.a通过指定端口
号mongod --dbpath / System / Volumes / Data / data / db —端口27018来更改mongod的端口。

4.b或者,您可以通过sudo lsof -i:27017查找进程来终止该端口上的进程,然后通过命令
kill -9终止进程

5,重复步骤2和3。


1

对于macOS用户,请注意以下问题:

如果您使用.tgz Tarball在macOS上安装MongoDB Community

(((从macOS 10.15 Catalina开始,Apple限制了对/ data / db的MongoDB默认数据目录的访问。在macOS 10.15 Catalina上,必须使用其他数据目录,例如/ usr / local / var / mongodb。

您可以通过以下方法解决它:

(MacOS Catalina起)

为了安全起见,Apple在Catalina中创建了一个新Volume。如果您在Catalina上,则需要在System / Volumes / Data中创建/ data / db文件夹。

使用此命令:

sudo mkdir -p /System/Volumes/Data/data/db

然后,使用此命令授予权限:

sudo chown -R `id -un` /System/Volumes/Data/data/db

这将取代正常

sudo mkdir -p /data/db

通过运行以下命令,确保/ data / db目录具有正确的权限:

sudo chown -R `id -un` /data/db

完成并启动mongoDB后,您可以在终端中使用以下命令:

sudo mongod --dbpath /System/Volumes/Data/data/db

0

MacOS中:-

如果您在运行mongo服务器时忘记提供先前创建的数据库的路径,则会出现上述错误。

须藤./mongod --dbpath ../../mongo-data/

参考

注意:-./mongod && ../../mongo-data是相对路径。因此,您可以通过在环境变量中进行配置来避免这种情况

参考


0

对于Windows,我有同样的问题。

解决方法是-我需要以管理员身份运行命令行。


1
我建议改写这样的答案:“如果您在Windows下遇到此问题,请确保您以管理员身份运行命令行”。
菲诺

0

如果您已经有了目录,请检查dir权限或尝试使用sudo重新启动mongo。sudo brew服务启动mongodb


0

就我而言,我遇到了类似的错误,这是因为我用root用户运行mongod而创建了只能由root访问的日志文件。我可以通过将所有权从root更改为通常从其运行mongod的用户来解决此问题。日志文件位于/ var / lib / mongodb / journal /


0

如果您正在使用Virtualbox,请检查您的VM。

docker-machine ssh

df -h

如果没有可用空间,请查看dev / sda1,这可能是由于大量图像或容器引起的。您可以使用“ docker rm”和“ docker rmi”将其删除


0

如果您要更改MongoDB版本,并且数据目录不兼容(例如降级),也会给出此退出代码。将旧目录移动到其他位置,然后创建一个新目录(按照其他答案中给出的说明)。


0

阿拉文

我也发生了这件事,因为我通过任务管理器停止了MongoDB。

正如cespon所建议的那样,创建C:\ data \ db文件夹并在C:\ Program Files \ MongoDB \ Server \ 3.4 \ bin \ mongod.exe中启动MongoDB对我有用,但是MongoDB没有显示我的任何数据库以前创建的。

然后,删除C:\ data \ db文件夹并使用MongoDB安装程序修复安装,我恢复了数据并正常启动了MongoDB。

(我是MongoDB的新手,但它帮助我解决了这个问题并恢复了可能预览的数据)。


0

输入mongod并出现错误

错误:

initAndListen中的异常:NonExistentPath:找不到数据目录/ data / db。

使用代码100关闭

然后尝试(具有所有权限创建数据和db文件夹)

mongod --dbpath = /数据

使用新标签并输入mongo。

>使用数据库

如果仍然面临问题,则可以检查mac catalina:(https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x-tarball/

对于Windows:https//docs.mongodb.com/manual/tutorial/install-mongodb-on-windows-unattended/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.