我有一个运行 MySQL 的 Aurora Serverless 数据库集群。我正在尝试编写一个从脚本中获取字符串并将其放入数据库的应用程序。
我已经能够使用 PuTTY 中的 ec2、ec2 上的节点程序和 MySQL Workbench 成功连接到集群,但我无法使用自己的代码。我正在尝试使用节点模块 ssh2 和 mysql2。
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({
host: 'my db endpoint',
user: 'root',
password: 'pass',
database: 'testdb',
stream: stream
//sql stuff
});
}).connect({
host: 'ec2-publicdns',
port: '22',
username: 'ec2-user',
privateKey: require('fs').readFileSync('pkeyssh') //pem key converted to openssh using PuTTYgen
});
当我运行它时,我得到: Error: (SSH) Channel open failure: Connection refused
另外,Aurora serverless 对我来说是正确的解决方案吗?似乎没有办法在不通过 ec2 的情况下真正与它交谈。我应该寻找不同的数据库主机吗?