我想在我的MacBook Air上安装MongoDB的。
我从官方网站下载的压缩文件,并提取文件,并移动到根目录下。 在此之后,该目录下,我做了/数据/ db和/日志文件夹。
这里是我的mongodb.config
它描述了我的数据库的基本配置。
dbpath = /mongodb/data/db
logpath = /mongodb/log/mongo.log
logappend = true
#bind ip = 127.0.0.1
port = 27017
fork = true
rest = true
verbose = true
#auth = true
#noauth = true
此外,我想知道什么#
在配置文件中表示。
我把这个文件到/mongodb/bin
, /mongodb
是我提取文件到该目录中。
我打开终端,进入./mongod --config mongodb.config
和我得到这个回来。
Juneyoung-ui-MacBook-Air:bin juneyoungoh$ ./mongod --config mongodb.config
about to fork child process, waiting until server is ready for connections.
forked process: 1775
all output going to: /mongodb/log/mongo.log
ERROR: child process failed, exited with error number 100
我该如何处理这个错误,这是什么意思?
您所创建的数据文件夹是非常有可能与创建sudo
,是吗? 他们所拥有的root
,并非全由你的普通用户可写的。 如果你是你的MacBook的唯一用户,然后更改目录到你的所有权:
sudo chown juneyoungoh /data
sudo chown juneyoungoh /data/db
sudo chown juneyoungoh /data/log
如果您打算在公共机器或某个合法上安装这一点,那么阅读更多关于蒙戈其他地方的安全做法。 我就把你对你的MacBook上运行。
我也有类似的问题,这是不相关的任何“须藤”的问题。 我试图从内核恐慌中恢复!
当我看到我的数据文件夹中,我发现了一个mongod.lock文件在那里。 在我的情况下,该页面帮助了很多: http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/ 。 当他们解释,
如果mongod.lock不是一个零字节的文件,然后mongod的将拒绝启动。
我测试了在我的环境中,该解决方案,它完美的作品:
- 删除
mongod.lock
文件。 - 修复数据库:
mongod --dbpath /your/db/path --repair
- 运行的mongod:
mongod --dbpath /your/db/path
有我的机器上同样的问题。 在日志文件是:
周一09年7月29日:57:13.689 [initandlisten]错误:没有足够的可用的日志文件空间
周一09年7月29日:57:13.689 [initandlisten]请提供至少3379MB在/ var / mongoexp / RS2 /期刊或使用--smallfiles
它是通过使用解决mongod --smallfiles
。 或者,如果你开始与--config选项的mongod比由配置文件禁用预写日志nojournal=true
(去掉开头#)。 一些更多的磁盘空间也将解决上述问题。
用同样的错误类似的问题-我试图运行修复脚本sudo -u mongodb mongod -f /etc/mongodb.conf --repair
经过ps aux | grep mongo
ps aux | grep mongo
并看到守护进程正在运行。 停止,然后修复脚本没有问题运行。
希望能对别人有帮助的。
这是因为你可能不关机的MongoDB正确,你是不是开始的MongoDB的正确途径。 根据您的mongodb.config
,你有dbpath = /mongodb/data/db
-所以我假设你创建的存储库/mongodb/data/db
? 让我澄清一下所有步骤。
- TO START的MongoDB
在您的mongodb.config
改变dbpath = /mongodb/data/db
到dbpath = /data/db
。 :在你的终端,通过命令创建数据库存储库mkdir /data/db
。 现在你有一个仓库 - 你就可以开始你的蒙戈。
在后台型启动蒙戈: mongod --dbpath /data/db --fork --logpath /dev/null
。
通过键入连接到您的蒙戈: mongo
,然后use admin
和db.shutdownServer()
如同解释的MongoDB
如果这种技术不适用于某些原因,你可以随时终止该进程。
查找MongoDB的进程PID通过键入: lsof -i:27017
假设你的MongoDB是运行在端口27017
型kill <PID>
替换<PID>
由你发现前一命令的值。
我对Linux的版本(CentOS)同样的错误,这为我工作
从DBPATH删除mongod.lock
$ rm /var/lib/mongo/mongod.lock
修复过程中的mongod
$ mongod --repair
运行的mongod配置
$ mongod --config /etc/mongod.conf
我有同样的错误。 我跑了交互式查看日志。
2014-10-21T10:12:35.418-0400 [initandlisten] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017
然后我用lsof
找出使用我的端口哪个进程。
$ lsof -i:27017
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 2106 MYUSERID 10u IPv4 0x635b71ec3b65b4a1 0t0 TCP *:27017 (LISTEN)
这是一个mongod
,我以前分叉时忘了关闭(因为我还没有看到它在我的bash窗口中运行)。 简单的通过运行杀死它kill 2106
,使我的过程中没有错误100运行。
一般来说,当mongod.conf文件无法找到Oracle数据库的存储或日志存储或可能的ProcessID店一定的路径,或也许它没有得到访问已在mongod的被宣布的配置目录和文件的文件权限此错误出现.conf文件
要解决这个错误,我们需要观察由MongoDB中生成的日志将清楚地表明你的MongoDB是否该文件或目录无法访问
上述错误可能看起来像下面的截图
在您的服务器“/”路径创建文件夹“数据”和“DB”里面。 其实你应该创建或修改的数据将被保存的文件夹的权限!