从 Node.js 连接到 SQL 数据库 (AWS RDS) 而没有 ETIMEDOUT 错误
Posted
技术标签:
【中文标题】从 Node.js 连接到 SQL 数据库 (AWS RDS) 而没有 ETIMEDOUT 错误【英文标题】:Connect to SQL database (AWS RDS) from Node.js without ETIMEDOUT error 【发布时间】:2021-07-03 19:48:38 【问题描述】:尝试使用 javascript 连接到 SQL 数据库,但我不断收到此错误:
Database connection failed: Error: connect ETIMEDOUT
at Connection._handleConnectTimeout (/Users/------/phpstormProjects/------/node_modules/mysql/lib/Connection.js:409:13)
at Object.onceWrapper (events.js:421:28)
at Socket.emit (events.js:315:20)
at Socket._onTimeout (net.js:480:8)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7)
已搜索网络但找不到任何解决方案。我究竟做错了什么?这是我的代码:
var mysql = require('mysql');
var connection = mysql.createConnection(
host : "----.---------.-------.amazonaws.com",
user : "--------",
password : "--------"
);
connection.connect(function(err)
connection.end();
if (err)
console.error('Database connection failed: ' + err.stack);
return;
console.log('Connected to database.');
);
【问题讨论】:
它看起来与etimedout-error-when-querying-mysql-database 问题相似。在connect(function(err) /* here */ )
中使用开关位置connection.end();
进行测试
没有帮助...仍然是同样的错误
@jain 我把它移到正确的地方了吗?
基本可以,不过把connection.end()
换成console.log('Connected to database.')
下比较好。 connection.connect(function(err) if(err) console.log('err'); return; console.log('Connected to database.'); connection.end(); );
是我想说的。
我在多个地方尝试了 connection.end() 并没有帮助
【参考方案1】:
这个是我自己发现的。我使用 phpstorm 作为 IDE 并尝试通过我的 app.js 文件连接到 sql。我还使用 aws ec2 实例连接到我之前已经建立连接的数据库。我使用 SSH 连接到我的 ec2 实例,然后在我的 /var/www/html 文件夹中创建了一个 app.js 并从那里毫无问题地连接。
【讨论】:
以上是关于从 Node.js 连接到 SQL 数据库 (AWS RDS) 而没有 ETIMEDOUT 错误的主要内容,如果未能解决你的问题,请参考以下文章
从 Heroku 上的 Node.js 连接到 CloudSQL
在 vagrant 中将 Node.js 连接到 apache 服务器上的 postgres