一般来说,mongodb和数据库都是新手.每当我运行时,mongo
我收到此错误消息:
MongoDB shell version: 2.4.9 connecting to: test Thu Jan 30 13:03:33.170 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145 exception: connect failed
运行mongod
我看到这一点:
Thu Jan 30 13:13:36.588 [initandlisten] MongoDB starting : pid=29408 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=Kimis-MacBook-Air-2.local Thu Jan 30 13:13:36.588 [initandlisten] Thu Jan 30 13:13:36.588 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 Thu Jan 30 13:13:36.588 [initandlisten] db version v2.4.9 Thu Jan 30 13:13:36.588 [initandlisten] git version: nogitversion Thu Jan 30 13:13:36.588 [initandlisten] build info: Darwin minilionvm.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49 Thu Jan 30 13:13:36.588 [initandlisten] allocator: tcmalloc Thu Jan 30 13:13:36.588 [initandlisten] options: { bind_ip: "127.0.0.1", config: "/usr/local/etc/mongod.conf", dbpath: "/usr/local/var/mongodb" } Thu Jan 30 13:13:36.591 [initandlisten] journal dir=/usr/local/var/mongodb/journal Thu Jan 30 13:13:36.591 [initandlisten] recover begin Thu Jan 30 13:13:36.591 [initandlisten] recover lsn: 108155770 Thu Jan 30 13:13:36.591 [initandlisten] recover /usr/local/var/mongodb/journal/j._0 Thu Jan 30 13:13:36.591 [initandlisten] journal file version number mismatch got:4147 expected:4149. if you have just upgraded, recover with old version of mongod, terminate cleanly, then upgrade. Thu Jan 30 13:13:36.592 [initandlisten] dbexception during recovery: 13536 journal version number mismatch 16711 Thu Jan 30 13:13:36.592 [initandlisten] exception in initAndListen: 13536 journal version number mismatch 16711, terminating Thu Jan 30 13:13:36.592 dbexit: Thu Jan 30 13:13:36.592 [initandlisten] shutdown: going to close listening sockets... Thu Jan 30 13:13:36.592 [initandlisten] shutdown: going to flush diaglog... Thu Jan 30 13:13:36.592 [initandlisten] shutdown: going to close sockets... Thu Jan 30 13:13:36.592 [initandlisten] shutdown: waiting for fs preallocator... Thu Jan 30 13:13:36.592 [initandlisten] shutdown: lock for final commit... Thu Jan 30 13:13:36.592 [initandlisten] shutdown: final commit... Thu Jan 30 13:13:36.592 [initandlisten] shutdown: closing all files... Thu Jan 30 13:13:36.592 [initandlisten] closeAllFiles() finished Thu Jan 30 13:13:36.592 [initandlisten] shutdown: removing fs lock... Thu Jan 30 13:13:36.592 dbexit: really exiting now
当我手动设置我的mongo dpath mongod --dbpath /data/db
(因为应该是安装时的默认值)并保持它在终端运行一切正常.但是一旦我关闭它,一切都会再次破裂.我的问题是:
为什么我的dbpath设置为/usr/local/var/mongodb
?
我如何修复此错误,以便mongo在我的机器上工作?
我假设我需要永久设置dbpath /data/db
或重新配置一些东西,所以它适用于dbpath/usr/local/var/mongodb
我也是unix命令的新手,所以不完全确定如何修复此错误.
谢谢你的任何建议!
所以,通过mongodb文档挖掘我读到这个:
"除非另有说明,否则mongod将在默认/data/db
目录中查找数据文件.(Windows系统使用\ data\db目录.)如果使用软件包管理系统安装.请检查/etc/mongodb.conf
软件包提供的文件以查看软件包的配置dbpath
. "
当我看看里面的文件/etc/
没有mongodb.conf
文件...但是,我确实看到/usr/local/etc/mongod.conf
...所以,如果我正确理解这一点,我应该创建一个调用的文件 /etc/mongodb.conf
并将dbpath设置为/data/db
.
我是否还需要删除内容/usr/local/
?
我认为这与我的PATH如何设置有关...有人可以向我解释如何在unix中解决这个问题,所以我不会有这个问题吗?
再次感谢!
首先你将有一个配置文件/etc/mongodb.conf
,因此这听起来像一个自制的安装,将使用一些更标准化的路径./data/db/
在很多手动安装文档中引用了整个内容.
所以基本上从你的日志服务器没有运行,它正在关闭,所以shell没有任何东西可以连接.好像你有一些不干净的关闭/重新启动导致了不一致.
清除/usr/local/var/mongodb/journal/
配置中日志中的文件.
也:
sudo rm /var/lib/mongodb/mongod.lock
以防万一,尽管那部分看起来很干净.然后重启.
您可以在mongodb.conf文件中设置dbPath:
storage: dbPath: "/path/to/your/database/data/db"
这是一个基于YAML的配置文件格式(从Mongodb 2.6版本开始),所以要注意没有标签只有空格,以及":"之后的空格
通常这个文件位于*nix系统中:/etc/mongodb.conf
那么就跑吧
$ mongod -f /etc/mongodb.conf
而mongod进程将开始......
(在Windows上的东西)
> C:\MongoDB\bin\mongod.exe -f C:\MongoDB\mongod.conf
只在Mac上试过这个:
在应用程序的根文件夹中创建数据目录
在安装mongo目录时,将cd放入您的mongo目录
运行此命令:
mongod --dbpath~/path/to/your/app/data
你应该好好去!
对我来说它必须有:
mongod --dbpath=/whatever/data/path