我收到以下错误:
alex@alex-K43U:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
alex@alex-K43U:/$
当我尝试启动mongodb时会发生这种情况:
* Starting database mongodb [fail]
我已经尝试mongo --repair
我将chown和chmod发送到 var,lib和data / db以及log mongodb。
不确定还能做什么。有什么建议吗?
mongodb.log:
***** SERVER RESTARTED *****
Thu Oct 11 08:29:40
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten]
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] ** with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten]
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
**************
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit:
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now
修改
我删除了锁,然后做了mongod修复并得到了这个错误:
Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
所以我用sudo做了:
alex@alex-K43U:~$ sudo mongod --repair
Thu Oct 11 12:05:42
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten]
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] ** with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten]
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit:
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now
但仍有同样的问题。
答案 0 :(得分:131)
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock
Step 2: Repair mongodb.
sudo mongod --repair
Step 3: start mongodb.
sudo start mongodb
or
sudo service mongodb start
Step 4: Check status of mongodb.
sudo status mongodb
or
sudo service mongodb status
Step 5: Start mongo console.
mongo
答案 1 :(得分:79)
在运行mongod
之前,您是否运行了mongo
?
我遵循了来自http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/的mongodb的安装说明,我遇到的错误与您在使用mongo
实际运行mongo进程之前运行mongod
时的错误相同。我认为安装mongodb也会启动它,但你需要先用mongod
手动启动它,然后再做其他需要mongodb的事情。
答案 2 :(得分:40)
这是因为mongod进程失效,你必须运行下面的命令才能启动mongod进程:
sudo service mongodb stop
sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair --dbpath /var/lib/mongodb
sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb
sudo service mongodb start
希望这会对你有所帮助。
答案 3 :(得分:27)
日志表明mongodb正在终止,因为有一个旧的锁文件。
如果您不是并且没有使用日记功能,请删除锁定文件,运行修复,然后再次启动mongodb。
如果您已启用或正在运行日记功能,请参阅the relevant Mongo DB docs。请注意,他们说“如果您使用日记功能运行,则不应进行修复以恢复到一致状态。”因此,如果你是日记,修复可能会使事情变得更糟。
答案 4 :(得分:13)
尝试
sudo service mongodb start
这解决了我的问题。
答案 5 :(得分:7)
检查您的文件系统可用空间,如果较少则增加它。这也可能导致mongo无法启动。检查/var/log/mongodb/mongodb.log文件。
ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
答案 6 :(得分:7)
尝试在mongod
之前运行mongo
。
sudo /usr/sbin/mongod
这解决了我的问题,
答案 7 :(得分:6)
所以首先你必须通过下面的命令
删除mongod.lock文件dest.addEventListener( 'drop', function(evt) {
evt.preventDefault();
evt.stopPropagation();
this.classList.remove('over');
...
}, false );
然后通过发出以下命令重新启动mongo服务
sudo rm /var/lib/mongodb/mongod.lock
答案 8 :(得分:4)
您可以查看netstat -anp | grep 27017
以查看该端口是否正被其他进程使用。
答案 9 :(得分:3)
这对我有用:
sudo rm /var/lib/mongodb/mongod.lock
sudo service mongodb restart
答案 10 :(得分:3)
在Windows中,以管理员身份运行cmd:
创建目录:
mkdir c:\ mongo \ data \ db
安装服务:
mongod.exe --install --logpath c:\ mongo \ logs --logappend --bind_ip 127.0.0.1 --dbpath c:\ mongo \ data \ db --directoryperdb
启动MongoDB:
net start MongoDB
4.启动Mongo Shell:
c:\mongo\bin\mongo.exe
此解决方案适用于我
答案 11 :(得分:3)
为了将来参考,请按照以下步骤避免类似错误:
1.下载MondoDB https://www.mongodb.com/
2.打开终端并进入您的下载 文件夹或您保存mondodb下载的任何文件夹(确保在插入之前提取mongodb文件夹)< / p>
cd Downloads
3.将mongodb移动到您的用户/本地路径
sudo mv mongodb-osx-... /usr/local/mongodb
4.cd到您的本地文件夹
cd /usr/local/mongodb
5.制作新目录
sudo mkdir -p /data/db
6.cd进入上面刚刚创建的新目录
cd /data/db
7.give mongo permisions
sudo chown YourMacUserName /data/db
8.然后打开/打开.bash_profile
为此,请按照以下步骤操作:
在新终端
中 <强> 1 即可。cd
的 2 强> .pwd
<强> 3 即可。ls -l
检查.bash_profile是否出现在终端上的文件列表中
如果没有创建-bash_profile
创建.bash_profile:
在您的终端
触摸.bash_profile
//如果您已有.bash_profile
,请跳过此步骤<强>步骤8:强>
接着 在您的终端
open .bash_profile
在弹出打开的 您的bash文件 中添加以下内容:
MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin
然后保存。(文件保存或命令S / CMD + S)
第9步:返回终端:
source .bash_profile
现在打开两个终端。 mondo守护程序另一个 mongo 。
终端1: 在您的终端类型:mongod
mongodb
第2终端:
mongo
在终端中启动mongod时,请确保不要输入以下拼写错误: 这是不正确的
mongo d
发出以下错误: 无法连接到127.0.0.1:27017,在(在轮询后检查套接字是否有错误),原因:连接被拒绝
这是正确的:
mongod
(mongo和d之间应该没有空格.. mondod
最后请记住,在终端上运行mongo之前,你必须运行mondod 。
答案 12 :(得分:2)
经过频繁的尝试后我终于解决了这个问题...
Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo
答案 13 :(得分:2)
此错误可能是由MongoDB的绑定IP设置引起的。您可以通过
检查MongoDB的配置文件$ sudo vi /etc/mongodb.conf
就我而言,绑定IP设置为服务器的内部网地址,如下所示:
bind_ip = 10.10.1.14
#port = 27017
所以我给了mongo一个IP参数来连接shell类型:
$ mongo 10.10.1.14
如果您更改了配置,请不要忘记重启mongodb服务。
答案 14 :(得分:2)
我有mongo版本3.2.1并且必须从/data/db/
删除锁定文件,然后运行mongod
并成功启动。
>rm /data/db/mongod.lock
>mongod
答案 15 :(得分:2)
我在http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/跟踪了文档。
配置并重新启动后,我执行了t
并获得了sudo service mongod start
。
最后,我发现... [FAILED]
已经开始了。我认为mongod
将其添加到自动启动。
检查yum install
是否正在投放:mongod
。
希望这可以帮助某些人遇到同样的问题。
答案 16 :(得分:1)
删除了我的Windows操作系统中数据目录内的mongod.lock后,它仍然显示相同的错误消息。我必须使用--dbpath运行mongod以使mongo命令运行而不会出错。
答案 17 :(得分:1)
虽然收到了答案,但我希望在MongoDB
中讨论网络错误。
设置安全写入问题不是确保我们安全的完整证明方法。我们假设w=1
&amp;设置j=true
,如果没有从服务器收到写确认怎么办?好吧,可能性是它没有发生,但它可能已经发生了。可能发生这种情况的原因是存在网络错误 - 有理由我们可能不会得到肯定的回应。因此,我们可以通过选择的语言驱动程序从应用程序发送请求。 mongod
可以成功完成它,然后可能会有TCP重置,并且网络实际上可以以我们从未收到响应的方式重置。所以,我们可能会得到一个错误,错误,我们可能会认为我们遇到了错误。它没有发生,但可能会发生。
对于插入物,可以防止它。这是可能的,因为如果我们让驱动程序创建_id
并且我们进行插入 - 那么我们可以多次执行该插入,这将是任何伤害。因为,如果我们这样做1 st 时间并且我们得到一个错误并且我们不确定该插入是否因为它是网络错误而完成,那么我们可以再次这样做。如果我们再次执行它,请使用确切的_id
执行它。最糟糕的情况是,当我们尝试插入它时,我们会遇到重复的键错误。
但是,更新是问题发生的地方。特别是,不是项目有效的更新,例如包括$ink
命令。所以,我们告诉数据库增加某个字段。那么在这种情况下,如果我们收到网络错误,我们不知道更新是否发生。现在,也许我们已经足够了解我们可以检查更新发生的值,这很好。但是,如果我们不知道该字段的数据库中的起始值,那么在网络错误的情况下,我们无法知道它是否发生。通过良好的网络,这种问题极为罕见。
如果我们真的需要不惜一切代价避免它,我们需要做的是将所有更新打开到插入中,方法是从文档中读取文档的完整值,然后删除它并再次插入或者只是插入一个新的。
即使写入成功,应用程序可能会收到错误的原因:
MongoDB
服务器在接收写入和响应之间终止。答案 18 :(得分:1)
只需尝试:
sudo service mongod restart
答案 19 :(得分:1)
第一次尝试:
sudo service mongod restart
如果出现错误: 活动:失败(结果:退出代码)自周一 2021-03-29 19:59:07 WEST; 3s
这可能是因为/var/lib/mongodb 和/tmp/mongodb-27017.lock 上的权限设置错误。您必须将所有者更改为 monogdb 用户
试试:
chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock
sudo service mongod restart
答案 20 :(得分:1)
这对我有用 要停止mongodb,请使用:
use admin
db.shutdownServer()
并重新启动:
sudo service mongod restart
答案 21 :(得分:1)
MAC OS
如果您拥有Mac并使用mongodb4.4, 您可以运行:
brew services start mongodb-community@4.4
答案 22 :(得分:0)
Ubuntu 18.04LTS:当我完全卸载以前的版本并安装4.2.6时,出现了问题
经过数小时的搜寻后,我解决了另一个问题
MongoDB无法启动-*** fassert()失败后中止
我对问题无法连接到服务器感到绝望,因为一切似乎都很好。
最后,我决定重新启动操作系统,然后猜测... BINGO
xl_file.index = pd.to_datetime(xl_file.index, format='%Y-%m-%d')
答案 23 :(得分:0)
样品溶液 按Window + R并键入services.msc以查看计算机上的所有服务 然后找到MongoDBServer,右键单击它并启动它。 然后转到C:\ Program Files \ MongoDB \ Server \ 4.2 \ bin,然后在命令promt上键入mongo。
答案 24 :(得分:0)
在本地数据库 mongo 错误连接到 127.0.0.1:27017 :: 由 :: 连接被拒绝:
尝试使用此命令
mongod --config /usr/local/etc/mongod.conf --fork
答案 25 :(得分:0)
这项工作适合我。在 Linux Ubuntu 20 上
答案 26 :(得分:0)
我的 mongod 服务被屏蔽了,我不得不使用这个命令来删除它。
<块引用>sudo systemctl unmask mongod
然后重启服务
答案 27 :(得分:0)
Err:无法连接到服务器127.0.0.1:27017
这是WINDOWS用户的解决方案,请在此处输入代码 1.创建目录:
mkdir c:\mongo\data\db
mongod.exe --install --logpath
启动MongoDB:
net start MongoDB
4。启动Mongo Shell:
`c:\mongo\bin\mongo.exe` or
转到直到bin并输入mongo
注意:以管理员模式打开终端
答案 28 :(得分:0)
如果使用的是OS X系统,则没有service
命令。因此,您将无法执行sudo service mongod start
。
查看此答案https://unix.stackexchange.com/a/155746以获得更多帮助!
答案 29 :(得分:0)
我遇到了类似的错误,但根本原因不同。 使用自制软件安装mongodb之后。 https://docs.mongodb.com/manual/installation/ 在终端上给出“ mongo”命令之前,我必须启动“ mongod”服务。
答案 30 :(得分:0)
简单运行两个建议
sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair
答案 31 :(得分:0)
在终端
1)sudo服务mongod启动
2)mongo
答案 32 :(得分:0)
只需从mongod --repair
运行C:\Program Files\MongoDB\Server\4.0\bin
这是文档https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/
答案 33 :(得分:0)
1。在d驱动器D:/ data / db中创建新文件夹
2。在D:/ data / db上打开终端
3。输入mongod并输入。
4。输入mongo并输入。
并且您的mongodb已经出现了............
答案 34 :(得分:0)
输入 windows + r 并输入以下内容
SERVICES.MSC
启动MongoDB
现在在mongo.exe所在的相应路径中的cmd中键入“mongo”,它将开始工作。
答案 35 :(得分:0)
在环境变量中将bin添加到PATH有帮助。
GOTO安装路径并将../bin复制到Windows
中环境变量中的PATH变量