首页 > 解决方案 > 解决了。问答:MongoDB MongoNetworkError:无法连接到服务器。服务器是远程服务器

问题描述

mongoose 连接到 MongoDB 失败。但是 mongo 命令行可以连接到 MongoDB。

代码:

var mongoose = require('mongoose');

mongoose.connect('mongodb://192.168.92.131/test', {useNewUrlParser: true});

结果:

    (node:6559) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [192.168.92.131:27017] on first connect [Error: 

    connect EHOSTDOWN 192.168.92.131:27017 - Local (192.168.92.1:60222)

    at internalConnect (net.js:835:16)

    at defaultTriggerAsyncIdScope (internal/async_hooks.js:301:12)

    at net.js:926:9

    at processTicksAndRejections 

(内部/进程/task_queues.js:75:11){

    name: 'MongoNetworkError', errorLabels: [Array],

    [Symbol(mongoErrorContextSymbol)]: {}

我的 MongoDB 安装在运行 Ubuntu OS 的虚拟机中。我搜索了一个解决方案,但我没有找到一个干净的解决方案。

我找到了一个可行的解决方案来分享:

故障排除过程

  1. 运行 mongo 命令行。连接正常。

  2. MongoDB 默认没有访问控制(用户/密码)。所以我的代码没问题。

  3. 知识产权问题?Mongodb 没有在 192.168.92.131 上启动

谷歌:使用外部ip启动mongodb 找到解决方法:https ://www.shellhacks.com/mongodb-allow-remote-access/

ether@ubuntu_ether:~$ sudo nano /etc/mongod.conf

没有外部 IP 地址。所以在mongod.conf中添加ip地址

…....

    enabled: true

#  engine:

#  mmapv1:

#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1, 192.168.92.131

ether@ubuntu_ether:~$ sudo service mongod restart

再次运行: var mongoose = require('mongoose'); mongoose.connect('mongodb://192.168.92.131/test', {useNewUrlParser: true});

好的!!!

标签: node.jsmongodbmongoose

解决方案


推荐阅读