答案 0 :(得分:103)
MongoDB需要一个文件夹来存储数据库。创建一个C:\data\db\
目录:
mkdir C:\data\db
然后启动MongoDB:
C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe
答案 1 :(得分:36)
对于macOS用户来解决此问题:
您需要执行以下步骤:
创建“db”目录。这是Mongo数据文件所在的位置。您可以通过运行以下命令在默认位置创建目录:
sudo mkdir -p /data/db
通过运行以下命令确保/data/db
目录具有正确的权限:
sudo chown -R `id -un` /data/db
您现在已全部设置,您可以运行mongod
来启动Mongo服务器。
答案 2 :(得分:22)
我的Mac(使用Brew)上的相同问题使用:
解决sudo mongod
答案 3 :(得分:11)
要在Windows中更改默认数据库文件夹C:\data\db
,命令为:
--dbpath
例如:
\mongod --dbpath C:\myfolder
答案 4 :(得分:5)
Mac用户
而不是使用:
运行MongoDB sudo mongod
如果您:
,则可以使用mongod
sudo chmod -R ugo+rw data
如果在运行mongodb(sudo
)时需要使用sudo mongod
,则表示您没有对mongodb数据文件夹的读写权限
答案 5 :(得分:3)
请采取以下步骤:
正如其他朋友提到的那样,您应首先创建一个目录,以便存储您的数据库数据。此文件夹可能类似于:
C:\蒙戈数据
从命令行导航到已安装mongodb的位置以及mongod.exe所在的位置。就我而言,完整的路径是:
C:\ Program Files \ MongoDB \ Server \ 3.4 \ bin
从这里运行mongod.exe并使用标志--dbpath将路径传递给您在步骤1中创建的文件夹,如下所示:
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
希望有助于解决问题。
答案 6 :(得分:2)
对于macOS用户,请注意以下问题:
如果您使用.tgz Tarball在macOS上安装MongoDB社区
((从macOS 10.15 Catalina开始,Apple限制对MongoDB默认数据目录/ data / db的访问。在macOS 10.15 Catalina上,您必须使用其他数据目录,例如/ usr / local / var / mongodb。))
您可以按以下步骤解决它:
(从MacOS Catalina开始)
为了安全起见,Apple在Catalina创建了新的Volume。如果您使用的是Catalina,则需要在系统/卷/数据中创建/ 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
答案 7 :(得分: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"
连接到MongoDB。
"C:\Program Files\MongoDB\Server\4.2\bin\mongo.exe"
检查所有工作是否正常:
show dbs
答案 8 :(得分: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的端口
数
mongod --dbpath / System / Volumes / Data / data / db —端口27018。
4.b或者您可以通过找到该端口来终止该进程
的过程
须藤lsof -i:27017
然后通过命令杀死
杀死-9
5。重复步骤2和3。
答案 9 :(得分:1)
要使用mongod
命令运行Mongo DB demon,您应该有一个数据库目录,可能需要运行:
mkdir C:\data\db
此外,MongoDB需要具有该目录的写权限,或者应该使用超级用户权限运行,例如sudo mongod
。
答案 10 :(得分:0)
在 MacOS 中: -
如果您在运行mongo服务器时忘记提供以前创建的数据库的路径,则会出现上述错误。
sudo ./mongod --dbpath ../../ mongo-data /
注意: - ./mongod&& ../../mongo-data是相对路径。 因此,您可以通过环境变量
中的配置来避免它答案 11 :(得分:0)
对于Windows 我遇到了同样的问题。
修复是 - 我需要以管理员身份运行命令行。
答案 12 :(得分:0)
如果您已经有了目录,请检查dir权限或尝试使用sudo重新启动mongo。 sudo brew服务启动mongodb
答案 13 :(得分:0)
当我尝试启动mongodb时(在Mac OS上),我一直收到以下错误消息。
var result = ADC.Friends.Include(f => f.ApplicationUser);
我正在使用以下命令:
SELECT DISTINCT
u2.email as friend_email
FROM users u
INNER JOIN user_relations r
ON (r.requestor_user_id = u.user_id OR r.receiver_user_id = u.user_id)
INNER JOIN users u2
ON (r.requestor_user_id = u2.user_id OR r.receiver_user_id = u2.user_id)
AND u2.user_id <> u.user_id
WHERE u.email ='andy@example.com'
AND r.friend_status = 1
对我来说,解决方法是我不需要“ =”符号,这会导致错误。所以我做到了
"shutting down with code:100"
只是想把它扔在那里,因为错误绝不表明这是问题所在。我几乎删除了〜/ mongo-data目录的内容,以查看是否有帮助。很高兴,我记得cli参数有时不使用“ =”符号。
答案 14 :(得分:0)
在我的情况下,我遇到了类似的错误,并且由于我用root用户运行mongod并创建了只能由root用户访问的日志文件而发生。我可以通过将所有权从root更改为通常从其运行mongod的用户来解决此问题。日志文件位于/ var / lib / mongodb / journal /
答案 15 :(得分:0)
如果您使用的是Virtualbox,请检查您的VM。
docker-machine ssh
df -h
如果没有足够的可用空间,请查看dev / sda1,这可能是由于大量图像或容器引起的。您可以使用“ docker rm”和“ docker rmi”将其删除
答案 16 :(得分:0)
如果您要更改MongoDB版本并且数据目录不兼容(例如降级),也会给出此退出代码。将旧目录移动到其他位置,然后创建一个新目录(按照其他答案中给出的说明)。
答案 17 :(得分:0)
Aravind。
这也发生在我身上,因为我通过任务管理器停止了MongoDB。
创建 C:\ data \ db 文件夹并在 C:\ Program Files \ MongoDB \ Server \ 3.4 \ bin \ mongod.exe 中启动MongoDB的工作原理正如cespon所建议的那样,但是MongoDB没有显示我以前创建的任何数据库。
然后,删除 C:\ data \ db 文件夹,并使用MongoDB安装程序修复安装,我恢复了数据并正常启动了MongoDB。
(我是MongoDB的新手,但它帮助我解决了此问题并恢复了可能预览的数据)。
答案 18 :(得分: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/