![](/img/trans.png)
[英]Get error connect ECONNREFUSED 127.0.0.1:3306 when start my node.js app
[英]Error: connect ECONNREFUSED 127.0.0.1:3306 on MySQL, Heroku, and Node.js
我正在用 mysql 和 node.js 测试简单的代码,但它说: Error: connect ECONNREFUSED 127.0.0.1:3306
这是我的代码:
require('dotenv').config();
const mysql = require('mysql2/promise');
module.exports = mysql.createConnection({
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME
});
我刚开始做一些mysql连接的代码。 任何人都可以解决这个问题吗?
heroku 的工作方式是,您的 Web dyno(虚拟机)不能内置 MySQL 实例。 也就是说,当您使用 Web dyno 时,您将无法连接到本地主机上的 MySQL。
Heroku 提供了自己的 postgreSQL 服务,您可以使用(当然,您必须将 Web 应用程序代码从 MySQL 更改为 postgreSQL)。 或者,您可以在 Heroku 应用程序中安装一些不同的第三方 MySQL 插件产品。 https://elements.heroku.com/addons/
这些产品中的每一个都需要您使用从 Web dyno 获得的环境变量连接到它。 所以如果你做这样的事情,而不是调试,你将能够在本地和你的dyno上运行。
const dburl = process.env.MYSQL_ADDON
|| 'mysql://' + process.env.DB_USER+ ':' + process.env.DB_PASS
+ '@localhost/' + process.env.DB_NAME
const conn = mysql.createConnection(dburl);
您使用的附加组件具有解释其环境变量名称和详细信息的文档。
可用的第三方附加组件具有免费层,允许您处理非常小的 (5MiB) 数据库。 对于比他们收费更大的数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.