簡體   English   中英

Node.js通過ssh連接

[英]Node.js connecting through ssh

我有一個node.js服務器可以工作但需要為ssh連接設置:

var mysql = require('mysql')
var io = require('socket.io').listen(3000)
var db = mysql.createConnection({

    host: 'hostname',
    user: 'username',
    password: '12345',
    database: '12345',
    port: 3306,
    socket: '/var/run/mysqld/mysqld.sock' 
})

db.connect(function(err){
    if (err) console.log(err)
})

我知道有ssh npm庫用於此目的,但可用的選項(ssh2,node-sshclient等)似乎處理可能使事情過於復雜的相當復雜的功能。 我正在尋找通過ssh連接到我的mysql數據庫的最簡單方法。 實現這一目標的最佳方法是什么?

如果您正在運行linux / unix系統,請執行以下操作:

通過ssh連接到你的mysql服務器並通過這個ssh隧道代理mysql端口(默認為3306)。

其工作原理如下:

1鍵入screen (啟動屏幕會話,即使shell關閉也是永久性的)。

2鍵入屏幕外殼:

ssh -L 3306:127.0.0.1:3306 your_servers_domain_or_ip -lyour_login_name

3輸入您的ssh密碼/或使用PKI身份驗證以避免手動步驟

4完成...現在可以像在應用程序安裝在同一台機器上時那樣連接MySQL。

從node.js連接到MySQL,如下所示:

var db = mysql.createConnection({
    host: '127.0.0.1', // Important to connect to localhost after connecting via ssh in screen
    user: 'username',
    password: '12345',
    database: '12345',
    port: 3306
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM