Node.js Nodejs-mysql2流连接和远程主机

Node.js Nodejs-mysql2流连接和远程主机,node.js,node-mysql2,Node.js,Node Mysql2,我需要从一台服务器查询mysql数据库。mysql数据库位于另一个网络上。我只能从特定服务器连接到此网络 我需要创建一个从服务器1到服务器2的隧道,并使用此隧道连接到我的mysql数据库 这是我当前的代码。这允许我连接到服务器2的本地mysql服务器,但不能连接到远程mysql服务器 var Client = require('ssh2').Client, mysql = require('mysql2'), var client = new Client(); var ssh = clien

我需要从一台服务器查询mysql数据库。mysql数据库位于另一个网络上。我只能从特定服务器连接到此网络

我需要创建一个从服务器1到服务器2的隧道,并使用此隧道连接到我的mysql数据库

这是我当前的代码。这允许我连接到服务器2的本地mysql服务器,但不能连接到远程mysql服务器

var Client = require('ssh2').Client,
mysql = require('mysql2'),

var client = new Client();
var ssh = client.connect({
  host: config.server_tunnel.dstHost,
  port: 22,
  username: config.server_tunnel.username,
  privateKey: config.server_tunnel.privateKey
});

ssh.forwardOut('127.0.0.1', 12345, '127.0.0.1', 3306, function (err, stream) {
   mysql.createConnection({
    user: config.database.username,
    password: config.database.password,
    database: config.database.database,
    stream: stream,
    host: 'remote.host.com'
  });
});

不要将
host
传递到
mysql.createConnection()
,而是尝试使隧道连接到它:

ssh.forwardOut('127.0.0.1', 12345, 'remote.host.com', 3306, ...);

很好,你已经指出了,这完全有道理。非常感谢。