按照以下教程,我刚刚在DigitalOcean上创建了一个mongo数据库:当我从mongo shell访问数据库时,https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-mongodb-on-ubuntu-16-04一切正常,但我无法使用node.js连接到数据库
这是我的代码:
import mongoose from 'mongoose';
mongoose.connect('mongodb://user:pass@droplet_ip:27017/my_database', (err, res) => {
if(err) {
console.log(err);
}
else {
console.log('connected');
}
})这就是错误:
{ MongoError: failed to connect to server [droplet_ip:27017] on first connect [MongoError: connection 0 to droplet_ip:27017 timed out]
at Pool.<anonymous> (/node_modules/mongodb-core/lib/topologies/server.js:336:35)
at emitOne (events.js:96:13)
at Pool.emit (events.js:189:7)
at Connection.<anonymous> (/node_modules/mongodb-core/lib/connection/pool.js:280:12)
at Object.onceWrapper (events.js:291:19)
at emitTwo (events.js:106:13)
at Connection.emit (events.js:192:7)
at Socket.<anonymous> (/node_modules/mongodb-core/lib/connection/connection.js:197:10)
at Object.onceWrapper (events.js:291:19)
at emitNone (events.js:86:13)
at Socket.emit (events.js:186:7)
at Socket._onTimeout (net.js:342:8)
at ontimeout (timers.js:365:14)
at tryOnTimeout (timers.js:237:5)
at Timer.listOnTimeout (timers.js:207:5)
name: 'MongoError',
message: 'failed to connect to server [droplet_ip:27017] on first connect [MongoError: connection 0 to droplet_ip:27017 timed out]' }我做错了什么?
发布于 2018-02-16 20:05:55
您可能未启用 mongo port以从Remote位置访问。
首先在droplet上运行以下命令
sudo ufw启用
sudo ufw允许OpenSSH
sudo ufw允许27017
现在打开mongo配置文件并添加append your droplet ip in bindIp部分。
文件路径:
sudo nano /etc/mongod.conf添加以下代码,使用您的服务器ip编辑droplet_ip:
. . .
net:
port: 27017
bindIp: 127.0.0.1, droplet_ip
. . .现在通过以下命令重启mongo:
sudo systemctl restart mongodhttps://stackoverflow.com/questions/48825381
复制相似问题