Trong trường hợp sử dụng trực tiếp trình điều khiển cơ sở dữ liệu, nếu bạn sử dụng mysql2
thay vì mysql
, bạn thực sự có thể chuyển luồng chuyển tiếp ssh làm kết nối cơ bản được trình điều khiển cơ sở dữ liệu sử dụng. Điều này sẽ cho phép bạn bỏ qua việc phải tạo một máy chủ bổ sung lắng nghe các kết nối đến được đào đường hầm. Vì vậy, bạn có thể làm điều gì đó như sau:
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 ...
});