सीधे डेटाबेस ड्राइवर का उपयोग करने के मामले में, यदि आप mysql2
का उपयोग करते हैं
mysql
. के बजाय , आप वास्तव में ssh अग्रेषित स्ट्रीम को डेटाबेस ड्राइवर द्वारा उपयोग किए जाने वाले अंतर्निहित कनेक्शन के रूप में पास कर सकते हैं। यह आपको एक अतिरिक्त सर्वर बनाने की आवश्यकता को छोड़ने की अनुमति देगा जो आने वाले कनेक्शनों को टनल करने के लिए सुनता है। तो आप इसके बजाय कुछ ऐसा कर सकते हैं:
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 ...
});