Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O túnel ssh2 do Node.js mantém vivo e executa consultas mysql


No caso de usar o driver de banco de dados diretamente, se você usar mysql2 em vez de mysql , você pode realmente passar o fluxo encaminhado ssh como a conexão subjacente a ser usada pelo driver de banco de dados. Isso permitirá que você ignore a necessidade de criar um servidor adicional que escute as conexões de entrada a serem encapsuladas. Então você pode fazer algo assim em vez disso:
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 ...
});