连接到远程mongoDB服务器

时间:2019-10-10 12:57:24

标签: mongodb remote-access

我有一台使用SSH连接的远程计算机,我在其上安装了mongoDB,并且希望远程使用它,如何使用nodejs和mongoDB罗盘连接到它?本地主机是IP吗?

const db = "mongodb://what do I write here?";
const connectDB = async () => {
  try {
    await mongoose.connect(db, { useNewUrlParser: true, useCreateIndex: true });
    console.log("MongoDB Connected...");
  } catch (err) {
    console.error(err.message);
    process.exit(1);
  }
};
connectDB();

4 个答案:

答案 0 :(得分:1)

mongoose.connect('mongodb://username:password@host:port/database')

现在使用host,您可以使用任何主机名或IP吗?

答案 1 :(得分:1)

简短答案

登录到您的计算机,打开位于/etc/mongod.conf的mongodb配置文件,并将bindIp字段更改为您的计算机ip地址(与您用于SSH到计算机的IP地址相同) ,然后重新启动mongodb服务器。


详细答案

  • 使用任何一个编辑器打开/etc/mongod.conf文件,如果您运行的是台式机版本,则可以使用gedit实用工具

    sudo gedit /etc/mongod.conf
    

    如果您正在运行服务器版本,则可以使用vi editor命令

    sudo vi /etc/mongod.conf
    
  • 文件应包含以下类型的内容:

    systemLog:
        destination: file
        path: "/var/log/mongodb/mongod.log"
        logAppend: true
    storage:
        journal:
            enabled: true
    processManagement:
        fork: true
    net:
        bindIp: 127.0.0.1  // enter your ip address here
        port: 27017
    setParameter:
        enableLocalhostAuthBypass: false
    
  • 更改bindIp后,必须使用以下命令重新启动mongodb

    sudo service mongod restart
    
  • 现在,您将可以使用用于SSH到系统的相同IP地址连接到mongodb服务器。

    mongoose.connect('mongodb://<machine_ip_address>:27017/<database_name>')
    

答案 2 :(得分:1)

首先尝试执行此操作:mongoose.connect('mongodb://localhost:27017/database')

mongoose.connect('mongodb://<machine_ip_address>:27017/<database_name>')
  

mongodb:// [用户名:密码@] host1 [:port1] [,... hostN [:portN]] [/ [数据库] [?选项]]

检查https://docs.mongodb.com/manual/reference/connection-string/

答案 3 :(得分:1)

尝试一下:

mongoose.connect("mongodb://localhost/<database-name>", { useNewUrlParser: true });
const db = mongoose.connection
db.on('error', (error) => console.error(error));
db.once('open', () => console.log('Connected to Database'));

确保运行MongoDB

  

mongod --config /usr/local/etc/mongod.conf