mysql - 通过 node.js 连接 aws mysql 时总是显示错误

标签 mysql node.js amazon-web-services

我尝试通过nodejs连接aws mysql

var mysql      = require('mysql')
var connection = mysql.createConnection({
  host     : 'xxxx.xxxc.ap-northeast-1.rds.amazonaws.com',
  port      :  '3306',
  user     : 'dbusername',
  password : 'passwords',
  database : 'dbname'
})

connection.connect(function(err){

if(!err) {
    console.log("connected ... ")
} else {
    console.log(err)
}
});

当我运行这段代码时,它会花费几秒钟,然后显示以下错误 -

{ Error: connect ETIMEDOUT
at Connection._handleTimeoutError (/node_modules/mysql2/lib/connection.js:181:13)
at ontimeout (timers.js:466:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:267:5)
errorno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
fatal: true }

我搜索了很多,找不到正确的答案,我尝试使用 node-mysql2,有同样的问题。有什么想法吗?

最佳答案

通过任何 mysql 客户端(mysql workbench、dbninja 等)连接你的 mysql aws rds 来检查它,如果你能够通过任何客户端连接它,那么一定是 nodejs 设置有问题,否则它会与RDS 详细信息。

同时检查 RDS 是否限制了对特定 VPN 的访问,因此您的 Node 服务器应该在同一个 VPN 中才能连接。

关于mysql - 通过 node.js 连接 aws mysql 时总是显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51530531/

相关文章:

amazon-web-services - AWS API 网关集成和 Terraform

sql - WordPress 和 MySQL 排序规则

php - 如果用户关闭浏览器或从一个页面导航到另一页面,则使用 PHP 杀死 MySQL 查询

javascript - 服务器和移动设备上的简单 svg 图表

node.js - Nodejs 扩展 Sequelize 模型

amazon-web-services - Fn::ImportValue 在自定义资源中不起作用

php - 为什么这个 MySQL INSERT INTO 运行了两次?

php - Doctrine2 一对多/多对一关系给出重复记录

node.js - PassportJS 重命名 "user"对象

amazon-web-services - 无法使用 Kops 验证 Kubernetes 集群