我按照这个mongoose文件enter link description here
mongoose.connect('mongodb://localhost/waterDB');
使用这个,我可以连接本地机器waterDB
mongoDB DataBase
我的个人计算机本地IP:192.168.1.5
我的服务器计算机本地IP:192.168.1.100
两台机器都有waterDB
数据库。两个数据库都没有用户名和密码
我想在我的个人计算机内连接服务器计算机waterDB
。
根据这个:mongoose.connect('mongodb://username:password@host:port/database?options...');
我尝试:mongoose.connect('mongodb://192.168.1.100:27017/waterDB');
但是,
MongoError: failed to connect to server [192.168.1.100:27017] on first connect
at null.<anonymous> (/home/water/node_modules/mongodb-core/lib/topologies/server.js:313:35)
at emitOne (events.js:77:13)
at emit (events.js:169:7)
..........
任何err解决方案?
谢谢(@ _ @)
答案 0 :(得分:7)
您的MongoDB实例仅在localhost上侦听可能会出现问题。
您可以更改MongoDB配置文件中的bind address。配置文件可能位于/etc/mongodb.conf
或/etc/mongod.conf
中。还有2种配置文件格式:
旧格式(仍受支持):
bind_ip = 0.0.0.0
YAML(版本2.6 +):
net:
bindIp: 0.0.0.0
更改配置文件后,您必须重新启动MongoDB服务器。
答案 1 :(得分:2)
尝试没有端口号
mongoose.connect('mongodb://192.168.1.100/waterDB');
这对你有用。
但请确保两者都连接在同一网络上,如果您在服务器以外的其他网络上连接,则无法正常工作
答案 2 :(得分:1)
在这种情况下,您将必须使用SSH隧道。请参考以下链接,该链接显示了如何创建SSH隧道。
Node.js SSH Tunneling to MongoDB using Mongoose