我正在使用tunnel-ssh
模块使用node.js建立与远程mysql
数据库的连接。文档很差,无法建立连接。以下是代码片段:
var tunnel = require('tunnel-ssh')
var server = tunnel.tunnel(config.sshData, function(err, result) {console.log('connected'});
这是我的sshData对象。
config.sshData = {host : 'serverxyz.web-hosting.com', username : 'xyz', password : 'xyz',
srcPort: 3307, dstPort : 21098}
如名称廉价文档所建议的,dstPort
是21098
。
然而,我得到了超时错误,每当我添加这个片段:
server.on('error', function(err) {});
我得到错误server.on is not a function
。远程连接在putty
和SQLyog
上运行良好。任何关于如何建立成功联系的程序都会有很大帮助。谢谢
更新
通过使用指定的正确端口,并直接使用ssh2
模块和此处给出的代码示例,使数据库正常工作。
名称廉价文档存在误解。21098是ssh端口,而不是数据库正在侦听的端口。为了使用非标准ssh端口,您需要显式指定port
值,如:
config.sshData = {
host: 'serverxyz.web-hosting.com',
port: 21098,
username: 'xyz',
password: 'xyz',
dstPort: 3306
};
然后,您应该能够连接到localhost:3306
来访问您的远程数据库。