我在RDS MySQL数据库中使用Node.js LTS已经有一段时间了。我最近开发了一个RDS无服务器Aurora MySQL5.6集群。与我的其他RDS数据库不同,我无法让Node.js使用Node mysql或mysql2适配器连接到带有SSL的新无服务器集群。
从一个Ubuntu实例和一个node.js应用程序:
我可以使用SSL成功地将Node应用程序连接到任何较旧的RDS数据库(MySQL 5.6.40):
// works with other RDS databases:
const fs = require('fs');
const mysql = require('mysql2');
const config = require('../config');
var connectionArgs = {
host: config.old_rds_host,
database: config.old_rds_database,
user: config.old_rds_user,
password: config.old_rds_password,
port: config.rds.port,
ssl: {
ca: fs.readFileSync(__dirname + '/../rds-combined-ca-bundle.pem')
}
}
var connection = mysql.createConnection(connectionArgs);
从同一台机器上,我可以使用MySQL客户端用SSL连接到新的RDS集群,而不会出现问题:
// Works with new RDS serverless cluster:
mysql -u rds_serverless_user -p -h new-rds-serverless-cluster.us-west-2.rds.amazonaws.com -P 3306 --ssl --ssl-ca=./rds-combined-ca-bundle.pem
我可以在没有SSL的情况下成功地将Node app连接到新的无服务器集群:
// Works with new RDS serverless cluster:
const fs = require('fs');
const mysql = require('mysql2');
const config = require('../config');
var connectionArgs = {
host: config.rds_host,
database: config.rds_serverless_database,
user: config.rds_serverless_user,
password: config.rds_serverless_password,
port: config.rds.port
}
var connection = mysql.createConnection(connectionArgs);
但当我尝试用SSL证书连接到新的无服务器集群时,我得到一个服务器不支持安全连接的错误:
// Fails with new RDS serverless cluster:
const fs = require('fs');
const mysql = require('mysql2');
const config = require('../config');
var connectionArgs = {
host: config.rds_host,
database: config.rds_serverless_database,
user: config.rds_serverless_user,
password: config.rds_serverless_password,
port: config.rds.port,
ssl: {
ca: fs.readFileSync(__dirname + '/../rds-combined-ca-bundle.pem')
}
}
var connection = mysql.createConnection(connectionArgs);
Debug: internal, implementation, error
Error: Server does not support secure connnection
at ClientHandshake.handshakeInit (/home/deploy_user/my-node-rds-app/node_modules/mysql2/lib/commands/client_handshake.js:120:17)
at ClientHandshake.Command.execute (/home/deploy_user/my-node-rds-app/node_modules/mysql2/lib/commands/command.js:40:20)
at Connection.handlePacket (/home/deploy_user/my-node-rds-app/node_modules/mysql2/lib/connection.js:513:28)
at PacketParser.onPacket (/home/deploy_user/my-node-rds-app/node_modules/mysql2/lib/connection.js:81:16)
at PacketParser.executeStart (/home/deploy_user/my-node-rds-app/node_modules/mysql2/lib/packet_parser.js:76:14)
at Socket.<anonymous> (/home/deploy_user/my-node-rds-app/node_modules/mysql2/lib/connection.js:89:29)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at TCP.onread (net.js:601:20)
那么有什么不同呢?旧的RDS数据库和新的无服务器集群之间唯一明显的区别是旧的实例是MySQL 5.6.40,而新的RDS集群是Aurora MySQL 5.6.10a。此外,旧的RDS实例主机名解析为单个专用IP,而新的集群主机名解析为多个专用IP。
我使用mysql适配器得到相同的结果。我还尝试了mysql适配器中的“Amazon RDS”SSL配置文件,得到了相同的结果。
我无法使用IAM数据库身份验证,因为此服务每秒需要处理20个以上的新连接。
如有任何建议,将不胜感激。
截至2018年10月,极光无服务器不支持SSL。[1].在您的实验中,您的连接大多降级为不安全连接。您应该能够查询状态表来确认这一点。
[1]https://docs.aws.amazon.com/amazonrds/latest/aurorauserguide/aurora-serverless.html
Aurora无服务器不支持以下功能:
从AmazonS3存储桶加载数据
用Aurora MySQL本机函数调用AWS Lambda函数
高级审计
极光复制品
回溯
数据库克隆
IAM数据库身份验证
跨区域读取副本
从MySQL DB实例还原快照
从AmazonS3迁移备份文件
使用安全套接字层(SSL)连接到DB群集
我配置了一个无密码的SFTP服务器。我想使用带有用户名和密码的jsch(JAVA)库连接它。我一直在使用以下代码行:- JAVA中的这一行是否会覆盖SSH配置的设置(少密码)? 请注意SFTP服务器使用终端命令SFTP连接良好,没有提示密码。
我创建了spring项目来对postgres数据库服务器进行CRUD,但出现了一些错误。 无法获得查询元数据的连接 组织。postgresql。util。PSQLException:连接尝试失败。在org。postgresql。果心v3。连接工厂impl。openConnectionImpl(ConnectionFactoryImpl.java:313)~[postgresql-42.3.1.ja
OpenStack-Kilo OS-CentOSLinux7.2.1511(Core) 应用 /var/tmp/packstack_ /var/tmp/packstack 应用 /root_redis.pp 10.xx.xxx.xx_mongodb.pp:[ERROR] 应用Puppet清单[ERROR] 错误:在Puppet运行期间出现错误:10.xx.xxx.xx_mongodb.pp 错误:
我使用vert. x java客户端连接安慰服务器。当使用SSL证书进行连接时,收到以下SSL握手错误。我在代码中使用setTrust all(true)。有人能帮助解释错误的原因和解决方案吗? 以下是错误:SEVERE:未处理的异常java.lang.IllegalStateExctive:桥没有成功启动io.vertx.amqpbridge.impl.AmqpBridgeImpl.create
我正在使用asmack-android-16为我的聊天应用程序。有时,在创建连接,我得到SSL异常,然后我无法登录服务器。我的服务器正在对连接使用SSL身份验证。有人能帮帮我吗?我已经挣扎了好几周了 以下是我的连接配置: XMPPConnection连接=new XMPPConnection(连接配置);connection.connect (); // 调用此行会给我异常,尽管已创建连接。 以下