我尝试通过nodejs连接AWS mysql
{ 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
我在Google上搜索了很多,但找不到正确的答案,因此我尝试使用data()
return{
eventSources: [{
events(start, end, timezone, callback) {
axios.get(`/Info/Something1`).then(response => {
callback(response.data);
}).catch(error => {
console.log(error);
});
}, {
events(start, end, timezone, callback) {
axios.get(`/Info/Something2`).then(response => {
callback(response.data);
}).catch(error => {
console.log(error);
});
}
}]
}
时遇到了同样的问题。有什么想法吗?
答案 0 :(得分:0)
通过任何mysql客户端(mysql workbench,dbninja等)连接您的mysql aws rds进行检查,如果您能够通过任何客户端进行连接,则nodejs设置一定有问题,否则会出现问题。 RDS详细信息。
还检查RDS是否对特定VPN限制了访问权限,因此您的节点服务器应该在同一VPN中进行连接。
答案 1 :(得分:0)
默认情况下,对AWS RDS实例的网络访问已关闭。
我强烈建议:
测试具有Node.js的实例是否能够连接到
mysql实例。您可以执行以下操作:
sudo apt-get install mysql-client
(对于Ubuntu)
检查RDS实例的安全组配置。 Follow AWS tutorial。
关注AWS RDS Security Best Practices 并适当地配置安全组。
答案 2 :(得分:0)
检查以下内容:
1-RDS安全组,并确保您的IP地址可以访问您的RDS, https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html
2-检查您的密码