繁体   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