Mongod没有运行.. E NETWORK [initandlisten] listen():bind()失败错误:98地址已经用于套接字:0.0.0.0:27017

时间:2015-07-14 07:02:48

标签: node.js mongodb sockets ubuntu mongoose

我正在开发一个mean.io的webapp,我正在关注这个视频tutoial

https://www.youtube.com/watch?v=AEE7DY2AYvI

我已经在我的ubuntu系统中安装了mongodb,并且在教程中通过sudo npm install mongoose安装了mongoose(我必须给sudo系统提示我)

安装完成后,我打开另一个终端,输入mongod

查看其输出

mukund@mukund-ThinkPad-Edge-E431:~$ mongod
2015-07-14T12:22:48.497+0530 E NETWORK  [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
2015-07-14T12:22:48.497+0530 E NETWORK  [initandlisten]   addr already in use
2015-07-14T12:22:48.498+0530 I STORAGE  [initandlisten] exception in  initAndListen: 29 Data directory /data/db not found., terminating
2015-07-14T12:22:48.498+0530 I CONTROL  [initandlisten] dbexit:  rc: 100

然后我在askubuntu和stackoverflow中搜索了修复程序

我输入了这个

mukund@mukund-ThinkPad-Edge-E431:~$ netstat -an | grep :27017
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:56348         127.0.0.1:27017         ESTABLISHED
tcp        0      0 127.0.0.1:56350         127.0.0.1:27017         ESTABLISHED
tcp        0      0 127.0.0.1:27017         127.0.0.1:56349         ESTABLISHED
tcp        0      0 127.0.0.1:27017         127.0.0.1:56351         ESTABLISHED
tcp        0      0 127.0.0.1:27017         127.0.0.1:56347         ESTABLISHED
tcp        0      0 127.0.0.1:56364         127.0.0.1:27017         ESTABLISHED
tcp        0      0 127.0.0.1:56349         127.0.0.1:27017         ESTABLISHED
tcp        0      0 127.0.0.1:56351         127.0.0.1:27017         ESTABLISHED
tcp        0      0 127.0.0.1:27017         127.0.0.1:56364         ESTABLISHED
tcp        0      0 127.0.0.1:27017         127.0.0.1:56350         ESTABLISHED
tcp        0      0 127.0.0.1:56347         127.0.0.1:27017         ESTABLISHED
tcp        0      0 127.0.0.1:27017         127.0.0.1:56348         ESTABLISHED

然后

mukund@mukund-ThinkPad-Edge-E431:~$ ps aux | grep mongod
mongodb   1067  0.5  1.2 697684 96512 ?        Ssl  10:06   0:43 /usr/bin/mongod --config /etc/mongod.conf
mukund    5358  0.0  0.0  15948  2280 pts/9    S+   12:21   0:00 grep --color=auto mongod

然后正如修复中所述,我杀了p.No 5358并再次跑mongod

mukund@mukund-ThinkPad-Edge-E431:~$ mongod
2015-07-14T12:22:48.497+0530 E NETWORK  [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
2015-07-14T12:22:48.497+0530 E NETWORK  [initandlisten]   addr already in use
2015-07-14T12:22:48.498+0530 I STORAGE  [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2015-07-14T12:22:48.498+0530 I CONTROL  [initandlisten] dbexit:  rc: 100

这里有什么问题?通过npm命令安装mongoose导致了这个问题吗?

还有一点要提到的是,我仍然可以通过mongo命令连接到mogodb数据库

有人请帮忙

这里的答案就是我做的,

使用

重新安装mongodb

sudo apt-get install mongodb

然后我跑mongod给了我错误说路径未设置,所以我设置了路径。

然后跑mongo,一切正常!

1 个答案:

答案 0 :(得分:2)

如果您使用apt-get安装mongodb,它会创建一个在您的计算机启动时自动启动的服务。一旦安装完成,它也会立即启动。您可以使用sudo service start/stop/restart mongodb停止,启动或重新启动它(系统上可能是“mongod”)

如果要更改启动方式,请查看/etc/init.d中的服务配置。服务使用的实际mongo配置位于/etc/mongod.conf中。如果你看那里,你应该看到一个看起来像

的行
 dbPath: /var/lib/mongodb

这定义了数据库实际存储的位置。