In het geval van rechtstreeks gebruik van het databasestuurprogramma, als u mysql2
gebruikt
in plaats van mysql
, kunt u de door ssh doorgestuurde stream daadwerkelijk doorgeven als de onderliggende verbinding die door het databasestuurprogramma moet worden gebruikt. Hierdoor hoeft u geen extra server te maken die luistert naar inkomende verbindingen die moeten worden getunneld. Dus je kunt in plaats daarvan zoiets als dit doen:
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 ...
});