我在尝试运行mongodb时发现此错误。我通过自制软件安装它。请协助
Agungs-MacBook-Pro:~ agungmahaputra$ mongod
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] MongoDB starting : pid=5189 port=27017 dbpath=/data/db 64-bit host=Agungs-MacBook-Pro.local
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] db version v3.6.0
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] git version: a57d8e71e6998a2d0afde7edc11bd23e5661c915
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2n 7 Dec 2017
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] allocator: system
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] modules: none
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] build environment:
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] distarch: x86_64
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] target_arch: x86_64
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] options: {}
2017-12-26T15:31:15.911+0700 E STORAGE [initandlisten] Failed to set up listener: SocketException: Address already in use
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] now exiting
2017-12-26T15:31:15.911+0700 I CONTROL [initandlisten] shutting down with code:48
Agungs-MacBook-Pro:~ agungmahaputra$
答案 0 :(得分:36)
您可以杀死之前的 mongod 实例并启动新实例。
要杀死之前的mongod实例,首先要通过键入来搜索计算机上运行的任务列表,
sudo lsof -iTCP -sTCP:LISTEN -n -P
搜索mongod 命令及其 PID 并输入
sudo kill <mongo_command_pid>
现在输入
启动你的mongod实例mongod
您可以看到MongoDB成功运行。
答案 1 :(得分:23)
您已在27017
使用的端口mongodb
中运行了一个进程。因此,您需要在该端口中停止该进程或尝试使用不同的端口号。
尝试mongod --port 27018
您可以更改您选择的端口号。
答案 2 :(得分:6)
总结其他(@Tony Roczz
,@Balasubramani M
)的答案:
错误:Failed to set up listener: SocketException: Address already in use
表示:
27017
mongod
两种方法:
killall mongod
ps aux | grep mongod
limao 425 ... /usr/local/opt/mongodb-community/bin/mongod --config /usr/local/etc/mongod.conf
lsof -iTCP -sTCP:LISTEN -n -P
mongod 425 limao .. TCP 127.0.0.1:27017 (LISTEN)
kill -9 425
mongod
brew services start mongodb-community
brew install mongodb-community
mongod --port 27018
lsof -iTCP -sTCP:LISTEN -n -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 425 limao 10u IPv4 0xab744305e75263cf 0t0 TCP 127.0.0.1:27017 (LISTEN)
可以看到27017
是当前正在运行的mongodb端口。
ps aux | grep mongod
mongod
服务brew services list
brew
安装并由brew
开始答案 3 :(得分:4)
在下面运行此命令后:
sudo lsof -iTCP -sTCP:LISTEN -n -P
搜索mongod COMMAND及其PID和类型,
sudo kill <mongo_command_pid>
然后重新启动mongod,它仍然失败,并显示相同的错误“ SocketException:地址已在使用MONGODB”。
服务器昨天重新启动,然后发生了
答案 4 :(得分:3)
如果您使用的是mongodb版本4. *
在默认设置下,应该有一个具有必要权限的“ db”文件夹“ / data / db”。
检查是否启动了MongoDB服务
brew services list
如果没有,则运行
brew services start mongodb
运行 mongo 而不是 mongod
答案 5 :(得分:1)
请确保错误在于端口,如果使用macos catalina,则报告有〜/ data / db问题,这也可能导致此错误。
答案 6 :(得分:1)
如果mongod进程已关闭,只需删除/ tmp中的.sock文件:
我的mongod已经倒下,因此不会出现在
中lsof -iTCP -sTCP:LISTEN -n -P
错误是:
[root@ol7db19c1 ~]# mongod -f /etc/csrs_2.conf
about to fork child process, waiting until server is ready for connections.
forked process: 6721
ERROR: child process failed, exited with error number 48
To see additional information in this output, start without the "--fork" option.
在日志文件(/var/mongodb/db/csrs2.log)中:
2020-07-05T16:03:59.354-0300 E STORAGE [initandlisten] Failed to set up listener: SocketException: Address already in use
因此,找到套接字锁定:
ls -ltra /tmp|grep .sock
然后将其删除(在生产环境中请谨慎操作):
rm -f mongodb-26002.sock
祝你好运!
答案 7 :(得分:0)
首先,您必须通过以下方式关闭正在运行的服务器
mongod --shutdown
然后运行
sudo mongod
它将在inshaAllah中工作
答案 8 :(得分:0)
我解决了此问题,将下面的命令粘贴到命令行中以关闭mongo的服务器。
sudo pkill -f mongod
“ sudo”(超级用户身份)运行命令admin权限,因此它将要求您输入用户密码
答案 9 :(得分:0)
sudo pkill -f mongod
答案 10 :(得分:0)
这听起来似乎很明显,但是您应该检查mongodb是否已在运行。 因此,与其先运行以下命令来启动数据库:
sudo mongod
尝试直接运行:
mongo