データベースドライバを直接使用する場合、 mysql2
を使用すると
mysql
の代わりに 、データベースドライバーが使用する基になる接続としてssh転送ストリームを実際に渡すことができます。これにより、トンネリングされる着信接続をリッスンする追加のサーバーを作成する必要がなくなります。したがって、代わりに次のようなことを行うことができます:
var mysql = require('mysql2');
var Client = require('ssh2').Client;
var ssh = new Client();
ssh.on('ready', function() {
ssh.forwardOut(
'127.0.0.1',
12345,
'127.0.0.1',
3306,
function (err, stream) {
if (err) throw err;
var sql = mysql.createConnection({
user: 'foo',
database: 'test',
stream: stream // <--- this is the important part
});
// use sql connection as usual
});
}).connect({
// ssh connection config ...
});