问题描述
我正在尝试将 MysqL 查询隧道传输到远程服务器。我在 Node.JS 上使用 SSH2 和 MysqL2 包。我尝试改编另一个问题 here 中提到的示例代码。这是我的代码
const MysqL = require('MysqL2');
const { Client } = require('ssh2');
const sshClient = new Client();
require('dotenv').config();
var ssh = new Client();
ssh.on('ready',function() {
ssh.forwardOut(
'127.0.0.1',3308,'127.0.0.1',function (err,stream) {
if (err) throw err;
const dbServer = {
host: process.env.DB_HOST,port: process.env.DB_PORT,user: process.env.DB_USER,password: process.env.DB_PASSWORD,database: process.env.DB_DATABASE,ssl: {
ca: require('fs').readFileSync('./certs/ca.pem'),key: require('fs').readFileSync('./certs/client-key.pem'),cert: require('fs').readFileSync('./certs/client-cert.pem')
},stream: stream
}
var connection = MysqL.createConnection(dbServer);
connection.query('SELECT * FROM `users` ;',function(err,results,fields) {
if (err) throw err;
console.log(results); // results contains rows returned by server
});
});
}).connect({
host: process.env.DB_SSH_HOST,port: process.env.DB_SSH_PORT,username: process.env.DB_SSH_USER,privateKey: require('fs').readFileSync(process.env.DB_SSH_KEY)
});
代码编译良好但不返回任何结果。当我使用 MysqL 工作台时,我能够使用相同的证书连接到同一台服务器。任何想法我错过了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)