繁体   English   中英

错误:在 MySQL、Heroku 和 Node.js 上连接 ECONNREFUSED 127.0.0.1:3306

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM