2017-10-05 15 views
1

私はあるサーバーからmysqlデータベースを照会する必要があります。 mysqlデータベースは別のネットワーク上にあります。私は特定のサーバーからのみこのネットワークに接続できます。Nodejs - mysql2ストリーム接続とリモートホスト

サーバ1からサーバ2にトンネルを作成し、このトンネルを使用してmysqlデータベースに接続する必要があります。

これは私の現在のコードです。これにより、サーバ2のローカルmysqlサーバに接続できますが、リモートmysqlサーバには接続できません。代わりにmysql.createConnection()hostを渡す

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' 
    }); 
}); 

答えて

1

、トンネルはそれに接続作ってみる:

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

パーフェクトは、それが今、あなたがそれを指摘してきた総理にかなっています。ありがとうございました。 – CharliePrynn

関連する問題