通过node.js连接aws mysql时始终显示错误

2ul0zpep  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(399)

我尝试通过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 ,具有相同的问题。有什么想法吗?

disbfnqx

disbfnqx1#

检查以下事项:
1-rds安全组,确保您的ip地址可以访问您的rds,https://docs.aws.amazon.com/amazonrds/latest/userguide/overview.rdssecuritygroups.html
2-检查密码

2hh7jdfx

2hh7jdfx2#

默认情况下,关闭对aws rds示例的网络访问。
我强烈建议:
测试您的nodejs示例是否能够连接到mysql示例。您可以通过以下方式完成: sudo apt-get install mysql-client (适用于ubuntu)
检查rds示例的安全组配置。遵循aws教程。
遵循aws rds安全最佳实践并适当配置安全组。

gojuced7

gojuced73#

通过任何mysql客户机(mysql workbench、dbninja等)连接mysql-aws-rds进行检查,如果您能够通过任何客户机进行连接,那么nodejs的设置一定有问题,否则会出现rds细节问题。
还要检查rds是否限制了对特定vpn的访问,以便您的节点服务器应该在同一个vpn中进行连接。

相关问题