I tilfælde af at bruge databasedriveren direkte, hvis du bruger mysql2
i stedet for mysql
, kan du faktisk sende den videresendte ssh-stream som den underliggende forbindelse, der skal bruges af databasedriveren. Dette vil tillade dig at springe over at skulle oprette en ekstra server, der lytter efter indgående forbindelser, der skal tunneleres. Så du kan gøre sådan noget i stedet:
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 ...
});