连接到远程 mongoDB 服务器

Connecting to a remote mongoDB server

我有一台使用 SSH 连接的远程机器,我在上面安装了 mongoDB,我希望远程使用它,如何使用 nodejs 和 mongoDB compass 连接到它? localhost 是 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();
mongoose.connect('mongodb://username:password@host:port/database')

现在 host,是否有您可以使用的主机名或 IP?

简答

登录到您的机器,打开位于 /etc/mongod.conf 的 mongodb 配置文件并将 bindIp 字段更改为您的机器 ip 地址(与您使用的相同 ip 地址ssh 到你的机器),然后重启 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
    
  • 现在您将能够连接到 mongodb 服务器,使用您用于通过 ssh 连接到系统的相同 IP 地址。

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

先试试这个:mongoose.connect('mongodb://localhost:27017/database')

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

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[database][?options]]

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

试试这个:

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

如果您正在使用 MongoDb 指南针

  1. 在您的服务器的 Inbound 中打开 27017 端口
  2. 形成一个 link 就像 mongodb://11.11.111.11 以防你不打算使用 auth
  3. 点击连接

基本上 link 是 mongodb://[username:password@]host1[:port1][...hostN[:portN]][/[defaultauthdb][?选项]]

更多信息here