Nodejs – mysql2stream连接和远程主机

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

我需要从服务器1创build一个隧道,到服务器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' }); }); 

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

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