我是mongodb的新用户..当我尝试使用mongod
命令运行mongodb本地服务器时,它无法运行并抛出此错误..
/usr/lib/mongodb/mongod --help for help and startup options
Sat Jun 25 09:38:51 MongoDB starting : pid=1782 port=27017 dbpath=/data/db/ 32-bit
** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Sat Jun 25 09:38:51 db version v1.6.3, pdfile version 4.5
Sat Jun 25 09:38:51 git version: nogitversion
Sat Jun 25 09:38:51 sys info: Linux vernadsky 2.6.24-27-server #1 SMP Fri Mar 12 01:45:06 UTC 2010 i686 BOOST_LIB_VERSION=1_42
Sat Jun 25 09:38:51 [initandlisten] *** warning: spider monkey build without utf8 support. consider rebuilding with utf8 support
Sat Jun 25 09:38:51 [initandlisten] waiting for connections on port 27017
Sat Jun 25 09:38:51 [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Sat Jun 25 09:38:51 [initandlisten] addr already in use
Sat Jun 25 09:38:51 [initandlisten] now exiting
Sat Jun 25 09:38:51 dbexit:
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to close listening sockets...
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to flush oplog...
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to close sockets...
Sat Jun 25 09:38:51 [initandlisten] shutdown: waiting for fs preallocator...
Sat Jun 25 09:38:51 [initandlisten] shutdown: closing all files...
Sat Jun 25 09:38:51 closeAllFiles() finished
Sat Jun 25 09:38:51 [initandlisten] shutdown: removing fs lock...
Sat Jun 25 09:38:51 dbexit: really exiting now
我尝试删除mongod.lock
文件...
我跑了mongod --repair
..
我还更改了mongod.lock
文件的权限。
但似乎没有任何效果..它一直显示相同的错误.. 我该怎么办?
我也安装了git版本1.7.4.1 但它显示错误的nogitversion ..
答案 0 :(得分:171)
尝试:
sudo service mongod stop
sudo mongod
要停止当前活动的mongodb服务,然后允许您开始新的
答案 1 :(得分:141)
不要使用-9信号终止进程,因为它会造成损害:http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo#StartingandStoppingMongo-SendingaUnixINTorTERMsignal
使用sudo killall -15 mongod
代替
答案 2 :(得分:51)
Andreas Jung:
" Sat Jun 25 09:38:51 [initandlisten] listen():bind()失败错误:98地址已经用于套接字:0.0.0.0:27017
是自言自语。
mongod的另一个实例已经在运行并分配了MongoDB默认端口27017。
要么杀死其他进程,要么使用其他端口。"
在这种情况下,请键入以下命令
ps wuax | grep mongo
你应该看到一些看起来像这样的东西
User 31936 0.5 0.4 2719784 35624 ?? S 7:34pm 0:09.98 mongod
User 31945 0.0 0.0 2423368 184 s000 R+ 8:24pm 0:00.00 grep mongo
现在输入mongod实例的kill命令(本例中为31936):
kill 31936
答案 3 :(得分:29)
周六6月25日09:38:51 [initandlisten] listen():bind()失败错误:98 已经用于套接字的地址: 0.0.0.0:27017
是自言自语。
mongod的另一个实例已经在运行并分配了MongoDB默认端口27017。
要么杀死其他进程,要么使用其他端口。
答案 4 :(得分:27)
从netstat中了解哪个进程正在运行mongodb port(27017)
命令:
sudo netstat -tulpn | grep :27017
输出将是:
tcp 0 0 0.0.0.0:27017 0.0.0.0:*
LISTEN 6432/mongod
在我的情况下,“6432”是pid,在您的情况下可能会有所不同。 然后使用以下命令终止该进程:
sudo kill <pid>
多数民众赞成!
答案 5 :(得分:23)
使用:
sudo killall mongod
它将停止服务器。
然后通过以下方式重新启动mongod
sudo service mongod restart
它应该有用。
答案 6 :(得分:15)
您想killall -15 mongod
,因为它仍在运行:Address already in use for socket: 0.0.0.0:27017
。
然后您可以再次运行mongod
。
答案 7 :(得分:7)
我建议改用:
phase
这可行。
答案 8 :(得分:7)
如果找不到任何当前正在运行的进程或者杀死它们不起作用,请尝试使用其他端口。例如,尝试27018,因为默认值为27017。
mongod --port 27018
我用命令mongod --help
答案 9 :(得分:6)
尝试使用killall -15 mongod / killall mongod 即使在此之后如果这不起作用,则通过键入以下命令来删除db storage文件夹 sudo rm -rf / data / db sudo mkdir / data / db sudo chmod 777 / data / db
答案 10 :(得分:4)
OS X. 活动监控, 寻找 mongod , 穿过它。 然后再次运行mongod。 问题解决了。
答案 11 :(得分:4)
打开终端并输入:
mkdir -p /data/db
然后输入:
mongod
答案 12 :(得分:3)
答案 13 :(得分:3)
MongoDB无法启动主要是由于不干净关机。要解决此问题,请删除mongod.lock文件。该文件位于数据文件夹中。
通过查看mongodb.conf或mongod.conf文件,找出数据文件夹的位置。 (Linux系统上/ etc下的Conf文件。)
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
例如,使用上面的配置,文件位于/var/lib/mongodb/mongod.lock。只需将其删除并重新启动mongodb。
答案 14 :(得分:2)
检查/var/log/mongodb/mongod.log上的日志并尝试推断出错误。就我而言,它是
无法取消链接套接字文件/tmp/mongodb-27017.sock错误:1不允许操作
已删除/tmp/mongodb-27017.sock并且有效。
答案 15 :(得分:2)
我遇到了同样的问题。虽然mongodb
服务未运行,但日志显示address already in use
消息。
$netstat -tulpn | grep :27017
什么都不返回
进一步分析发现该问题是由于锁定文件造成的。删除锁定文件并重新启动后,该服务正常运行。
$grep "dbpath" /etc/mongodb.conf
dbpath =/var/lib/mongodb
$ls /var/lib/mongodb/mongod.lock
$service mongod start
答案 16 :(得分:1)
服务器可能已在运行。请通过命令 mongo 检查它是否正常工作。
答案 17 :(得分:1)
尝试
/usr/lib/mongodb/mongod.exe --dbpath c:data \ db
- dbpath(后面应该是数据库的路径)
答案 18 :(得分:0)
如果你是第一次运行mongo,你可能想先设置路径
mongod --dbpath <path to the directory>
答案 19 :(得分:0)
当您缺少LC_ALL环境设置时,看起来在日志中显示相同的错误。这很令人困惑,但您可以执行mongo
客户端以查看它是一个问题。
答案 20 :(得分:0)
(如果你正在使用linux,)
mongod --shutdown --config=path/to/your/configFile.conf
或
mongod --repair --config=path/to/your/configFile.conf
没有解决问题,退出并重新登录。这解决了我的问题。
或者你可以从终端手动终止进程,我想。
答案 21 :(得分:0)
它显示错误listen():bind()失败错误:98地址已用于套接字:0.0.0.0:27017 即27017地址已被某些其他服务使用。 请检查一下 “netstat -apt | grep”27017“” 命令
答案 22 :(得分:0)
要在 Windows 中补充:
例如,已安装mongoDB 3.6版,MongoDB的安装路径为“ D:\ Program Files \ MongoDB”。
创建文件夹D:\ mongodb \ logs,然后在此文件夹中创建文件mongodb.log。
以管理员的身份运行cmd.exe,
D:\Program Files\MongoDB\Server\3.6\bin>taskkill /F /IM mongod.exe
D:\Program Files\MongoDB\Server\3.6\bin>mongod.exe --logpath D:\mongodb\logs\mongodb.log --logappend --dbpath D:\mongodb\data --directoryperdb --serviceName MongoDB --remove
D:\Program Files\MongoDB\Server\3.6\bin>mongod --logpath "D:\mongodb\logs\mongodb.log" --logappend --dbpath "D:\mongodb\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
删除文件夹“ D:\ mongodb \ data”下的这两个文件mongod.lock
和storage.bson
。
然后使用管理员权限在cmd中键入net start MongoDB
,此问题将得到解决。
答案 23 :(得分:0)
杀人过程无法解决我的问题。 我的 mac 崩溃了,重新启动后,mongo dbPath中存在一些锁定文件(mongod.lock,WiredTiger.lock)。我将这些文件移到了其他文件夹(为了避免出现更多问题,我没有删除它们),然后它起作用了。 在后继之星上,我删除了移动的锁定文件。