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
时(应该是安装时的默认设置)并保持它在终端中运行一切正常。但是一旦我关闭它,一切都会再次破裂。我的问题是:
/usr/local/var/mongodb
?我假设我需要将dbpath永久设置为/data/db
或重新配置某些内容,以便它可以将dbpath用作/usr/local/var/mongodb
我对unix命令也很新,所以不完全确定如何解决这个错误。
谢谢你的任何建议!
所以,通过mongodb文档我读到了这个:
“除非另有说明,否则mongod将在默认的/data/db
目录中查找数据文件。(Windows系统使用\ data \ db目录。)如果使用包管理系统安装。请检查{{1}您的包提供的文件,以查看/etc/mongodb.conf
。“
当我查看dbpath
中的文件时,没有/etc/
文件...但是,我确实看到mongodb.conf
...所以如果我理解正确的话,我应该创建一个名为/usr/local/etc/mongod.conf
的文件,并将dbpath设置为/etc/mongodb.conf
。
我还需要删除/data/db
中的内容吗?
我认为这与我的PATH如何设置有关...有人可以向我解释如何在unix中解决这个问题,所以我不会遇到这个问题吗?
再次感谢!
答案 0 :(得分:14)
只在Mac上试过这个:
运行此命令:
mongod --dbpath~ / path / to / your / app / data
你应该好好去!
答案 1 :(得分:10)
首先,您将在/etc/mongodb.conf
中有一个配置文件,因此这听起来像一个自制安装,它将使用一些更标准化的路径。在很多手动安装documentation中引用了整个/data/db/
内容。
所以基本上从您的日志中服务器没有运行,它正在关闭,因此shell没有任何连接。好像你有一些不干净的关闭/重启,这导致了不一致。
清除配置中日记/usr/local/var/mongodb/journal/
中的文件。
此外:
sudo rm /var/lib/mongodb/mongod.lock
以防万一,即使该部分看起来很干净。然后重启。
答案 2 :(得分:10)
您可以在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
答案 3 :(得分:6)
对我而言必须有:
mongod --dbpath=/whatever/data/path
答案 4 :(得分:2)
mongod --port portnumber --dbpath /path_to_your_folder
默认情况下,portnumber为27017,path为/ var / lib / mongodb
您可以设置自己的端口号和路径,以便保留所有数据库。
答案 5 :(得分:1)
您还可以将mongod配置为在启动时运行,以便在启动时自动运行,并在配置时设置dbpath。为此,请尝试:
mongod --smallfiles --config /etc/mongod.conf
--smallfiles
标记用于防止出现大小错误。当然,它是可选的。这样做可以解决您的问题,同时自动化您的mongodb设置。
答案 6 :(得分:0)
非常简单:
sudo chown mongodb:mongodb /var/lib/mongodb/mongod.lock
答案 7 :(得分:0)
sudo mongod --dbpath ~/data
这使它对我有用。
答案 8 :(得分:0)
场景: MongoDB (版本v4.0.9)。
解决:
创建自定义文件夹(名称: myCustomDatabases ):
D:>md myCustomDatabases
运行'mongo --dbpath',其路径为自定义文件夹(名称: myCustomDatabases ):
mongod --dbpath "D:\myCustomDatabases"
从另一个“ cmd”运行“ mongo”:
D:>mongo
3.1。显示存储在自定义文件夹(名称: myCustomDatabases )中的所有数据库:
>show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
3.2。使用名称为 newDb 的数据库:
> use newDb
switched to db newDb
3.3。显示存储在自定义文件夹(名称: myCustomDatabases )中的所有数据库:
>show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
!!! 已删除,表明 newDb 在列表中否!
3.4。必须创建一个带有文档的集合, 将会创建数据库 newDb 。
> db.Cats.insert({name: 'Leo'})
WriteResult({ "nInserted" : 1 })
插入({name:'Leo'})操作将创建: 数据库 newDB 和集合 Cat ,因为它们不存在。
3.5。现在,新创建的数据库 newDb 将显示在列表中。
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
newDb 0.000GB
3.6。现在,在自定义文件夹 D:\ myCustomDatabases 中,具有数据库 newDb 。
答案 9 :(得分:0)
在主目录中创建目录db,在db内创建另一个目录数据
cd
mkdir db
cd db
mkdir data
然后键入此命令-
mongod --dbpath ~/db/data
答案 10 :(得分:0)
Windows环境,本地计算机。 我有一个错误
[js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException:
Error connecting to 127.0.0.1:27017 :: caused by ::
No connection could be made because the target machine actively refused it. :
经过反复尝试,我决定
答案 11 :(得分:0)
您可以使用--dbpath标志来为其提供参数,即目录地址。我发现它对Windows 10 OS很有用。
使用默认设置通常不需要。
答案 12 :(得分:0)
转到您希望保存数据的目录。
创建一个名为“mongodb”的文件夹,并在其中创建另一个名为“data”的目录
导航回终端窗口中的“mongodb”目录并放置以下行mongod --dbpath=data --bind_ip 127.0.0.1
每次要启动mongodb数据库时都运行此命令
答案 13 :(得分:0)
使用终端命令 mongod --dbpath /YOUR/PATH/TO/DATA/
我需要在每次启动 MongoDB 时输入它。不知何故在 mongo.conf 中设置它没有正确加载路径。我找到了一个解决方案,通过在 ~/.zshrc 中添加别名来避免每次都输入长命令
use admin
按 Enter 并在下一行输入 db.shutdownServer()
。~/.zshrc
或当您的 macOS 使用 bash-shell 打开 ~/.bash_profile
alias -g mongod="MongoDB --dbpath /YOUR/PATH/TO/DATA/
source ~/.zshrc
或对于 bash-shell 用户:source ~/.bash_profile
mongod
MongoDB 现在应该以正确的路径和连接运行。终端现在可以关闭。要检查 mongo 是否正在运行打开的终端,请输入 mongo
以提供终端中的界面或输入 top
并在应用程序列表中检查 mongo。