sql >> Databasteknik >  >> RDS >> Mysql

Node.js ssh2 tunnel hålla vid liv och exekvera mysql-frågor

Om du använder databasdrivrutinen direkt, om du använder mysql2 istället för mysql , kan du faktiskt skicka den vidarebefordrade ssh-strömmen som den underliggande anslutningen som ska användas av databasdrivrutinen. Detta gör att du kan hoppa över att behöva skapa en extra server som lyssnar efter inkommande anslutningar som ska tunnlas. Så du kan göra något så här istället:

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



  1. Vad är DC2Type array datatype i mysql

  2. MySql - skiftlägeskänslig fråga om tabeller på olika server

  3. Varför är en UDF så mycket långsammare än en underfråga?

  4. Hur man automatiserar databasfailover med ClusterControl